Oracle的全库导入,首先一点必须先创建数据库,创建了数据库,才能往该数据库导入所有数据。
相对来说,使用Oracle进行数据导入导出还很有些“麻烦”的,大多数资料上来就是一堆命令或者命令的介绍,相关的、冗余的都杂糅在一起,看着往往让人越来越不清晰(深入熟悉了解Oracle架构、PL/SQL的大神除外)。
因此,对使用 expdp/impdp 命令工具对全库导出和导入的整体操作流程和主要步骤进行介绍和记录,最后,关于全库迁移的处理,还是推荐使用 工具(一个看起来和使用起来似乎更加麻烦的工具,但功能应该很强)。
登陆数据库。
创建directory,名称为,用于在导出时指定导出到的目录:
注意,(路径)要用单引号,双引号会报错。
查看directory:
如下,为 导出数据库全部数据的命令。
记得修改正确的,数据库服务名,为导出的数据文件名,默认名为,逗号分割可以指定导出到多个文件,为导出的日志文件名,若不指定,默认生成名为的日志文件。
表示导出整个数据库,默认N。
注:用户需要授权导出的权限,若是系统认证,或system/sys高级用户,则不需要。
授予用户导入导出操作相关的权限:
登陆数据库。同样创建directory,指定导入时文件所在的路径:
DUMP_DIR 指向 dmp 导出的数据文件所在路径。
同样,用户要有足够的权限
使用系统认证(sysdba角色)登陆数据库,免除用户权限的问题,可以更方便的直接执行导出或导入。
- 创建目录
- 全部导出
如果报错,则使用 【实际使用没问题】形式,或
或 用户
- 全部导入
或sys用户
这个原因在于位置放置不正确。密码和之前不能有空格,并且要紧挨着。也就是上面所示的写法。系统认证的也要写成。
参考UDE-00014: invalid value for parameter, ‘attach’终极解决方案之一
查看数据库的字符集。
通常字符集在创建数据库时指定好,创建后则不应该修改。
如果导入导出时不一致,推荐的做法是,删除目标数据库,重新创建与源库字符集一样的数据库,而不是直接进行字符集的修改。
具体参见:修改oracle数据库字符集编码
imp 需要先建立表空间、用户等再导入。impdp则不需要。
expdp/impdp 支持全库导入导出;效率相对更高。
impdp导入是会创建表空间、用户等,但是,如果表空间大小与配置的不一样就会报错
通常在直接用创建表空间时,也有可能出现这个错误。这是由于创建表空间时指定的块大小与系统设置的块大小不一致。
解决办法通常是修改的大小。但是,有些块大小是和系统存储的块大小一致的,不允许修改。
如下为自己测试,有些能够修改,并且提示“已更改”,但是查看仍然没有变化。
最终也是没有解决。
【其原因应该是源库没有使用默认的块大小(block_size)】
最开始的表空间导入失败,导致后面剩余的数据或信息的导入都失败。
正确的处理,应该是创建表空间,然后在依次执行用户、表、数据的导入,而不能直接进行整库的导入。具体通过各个部分进行导出导入,参见参考文章。
在ORA-39083 - During Impdp中看到有使用参数。其具体作用和使用暂时不清楚。
全库或整体数据库的迁移,通常还是推荐使用 工具。
- Oracle数据库expdp用法以及注意事项
- oracle 数据泵导出导用户,多用户,整个库,指定表的数据
- oracle导出整个数据库和导入整个数据库命令
- Oracle 表空间、权限、赋权、expdp导出、impdp导入等
12c向19c迁移:使用数据泵(impdp)+dblink做全量迁移
到此这篇impdp导入指定字符集(impdp 字符集)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/58888.html