Oracle数据库迁移

***********本文章为本人工作中遇到的问题记录,如果有问题欢迎讨论改正***********

一、检查数据库服务器参数、表空间、数据库用户名、实例名、账号、密码等信息

二、导出数据:

        使用exp命令:

                1:directory:dump文件导出的文件位置,可以预先在数据库中创建出来

                2:schemas:根据数据库用户导出数据,schemas为用户名

                3:parallel:并行数,由于数据量大的情况下导出数据比较慢,所以需要进行并行导出,具体并行数根据服务器情况而定,推荐8

                4:cluster:并行导出情况下,推荐为no,若为y,由于目录未共享情况,会出现问题

                5:compression:压缩,可以在导出的同时对dump文件进行压缩,但并不会提升导出速度

                6:开并行导出dumpfile写法才加_%U

expdp user/passwd directory='注释1' dumpfile=file_%U.dmp logfile=exp.log schemas='注释2' parallel=8 cluster=no compression=y

三、导入数据

        使用imp命令:

                1:directory为dump文件存放位置,可预先在新数据库中创建完成

                2:导出时开并行,导入时需保持一致,dumpfile与导出时写法一致 

                3:remap_schema=old:new为当新老数据库的实例发生改变时,进行转换

                4:parallel并行数需与导出时一致

impdp user/passwd directory='注释1' dumpfile=file_%U.dmp logfile=imp.log remap_schema=old:new parallel=8 cluster=no

数据库查询知识:

 1.查询directory:

select * from dba_directories;

2.创建directory并附权:directory_name自己取名字,username为数据库用户

create directory directory_name as '/home/示例';
grant read,write on directory directory_name to username;

3.导入后如果要清空数据库用户下所有内容并重新创建新的用户,进行如下操作(谨慎操作)

        ①.删除用户

drop user username cascade;

        ②.创建用户、设置密码、设置表空间

create user username identified by passed default tablespace tablespace_name;

        ③.给用户附权

grant resource,connect to username;

        ④.quota为限制用户对表空间的使用,可以设置为unlimited

alter user username quota unlimited on tablespace_name;

        ⑤.给用户赋予directory的读写权限

grant read,write on directory_name to username;

        ⑥.给用户赋予对应创建视图、索引、同义词表的权限

grant create synonym to username;
grant create view to username;

4.查询当前数据库多少进程占用,删除用户前需要将所有进程关闭

select  SID,SERIAL#,MACHINE,PROGRAM from V$session;

5.查询数据库表空间

select * from dba_tablespaces;

6.查询数据库用户

select * from dba_users;

7.重启数据库

登录dba用户:shutdown immediate;
登录dba用户:startup;

你可能感兴趣的:(oracle数据库迁移,数据库,oracle,etl工程师,数据库开发,数据仓库)