如何将Linux服务器上的数据库拷贝到另一个服务器上(使用expdp/impdp命令)

1.xshell下载及安装:xshell官网下载及安装

2.在xshell中新建会话:教你怎么使用xshell远程连接linux服务器

3.与数据库所在服务器建立连接
    1)登陆系统用户root
    2)切换系统用户:输入su - oracle,切换系统用户为oracle(注意,“-”和“oracle”中间有一个空格)
如何将Linux服务器上的数据库拷贝到另一个服务器上(使用expdp/impdp命令)_第1张图片
    3)连接数据库:
    输入sqlplus /nolog来启动sqlplus,然后输入conn database_username/database_password来连接数据库。
    如果是数据库管理员,可以直接通过输入sqlplus / as sysdba来连接数据库。
如何将Linux服务器上的数据库拷贝到另一个服务器上(使用expdp/impdp命令)_第2张图片
    4)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等数据库管理员创建。(这个逻辑目录指定了导出文件的保存位置)(点击查看更多directory操作)
    create directory dpdata1 as '/home/oracle';
    5)查看数据库的表空间名称。
    select username,default_tablespace from user_users;
    (查看当前用户的角色  --  select * from user_role_privs;
        查看当前用户的系统权限  --  select * from user_sys_privs;
        查看当前用户和表级权限  --  select * from user_tab_privs
        查看用户下所有的表  --  select * from user_tables)
    6)输入 exit 退出sqlplus。
    7)按用户导出数据,一般情况下,按用户导出的数据就够用了,scott是用户名,tiger是密码。
    注意,如果是本地数据库不要加@orcl!!
    expdp database_username/database_password@orcl schemas=database_username dumpfile=expdp.dmp DIRECTORY=dpdata1;
4.通过xftp工具来将服务器上的导出文件expdp.dmp传到本地,再传到目标服务器。
    通过点击xshell上的这个按钮可以直接获取下载地址进行下载,下载安装后再点击就会自动启动xftp并且连接好当前服务器。
如何将Linux服务器上的数据库拷贝到另一个服务器上(使用expdp/impdp命令)_第3张图片
    xftp:(点击查看xshell如何关联xftp快速上传和下载文件)
如何将Linux服务器上的数据库拷贝到另一个服务器上(使用expdp/impdp命令)_第4张图片
5.在目标服务器将刚才的expdp.dmp文件导入到目标数据库中。
    1)通过新建会话来连接目标服务器,切换到oracle会话。
    su - oracle
    2)使用数据库管理员来连接数据库。
    sqlplus / as sysdba
    3)创建逻辑目录。(点击查看更多directory操作)
    create directory dpdata1 as '/home/oracle';
    4)创建新的数据库用户并授权。(点击查看更多用户操作和权限说明)
    create user 用户名 identified by 口令[即密码];
    grant connect, resource to 用户名;
    赋予用户directory的读写权限:
    grant read, write on directory dpdata1 to 用户名;
    5)创建表空间,一般不创建,使用默认表空间即可。
    (点击查看如何创建表空间)
    6)查看当前表空间的名称。(点击查看更多select操作)
    select username,default_tablespace from user_users;
    7)如果当前表空间的名称和导出数据库的表空间的名称不一样,有两种方式解决:(默认表空间的名称是USERS)
    (注意:要导的数据库表空间和需要导入的数据库表空间的名称必须相同!!)
    方式一:更改当前表空间的名称。
    alter tablespace  USERS rename to TEST;
    方式二:在导入数据库的时候在impdp语句的末尾加上参数remap_tablespace=source:target
    source -- 导出dmp文件的表空间名
    target -- 要导入数据的表空间名
    8)输入 exit 退出sqlplus。
    9)通过impdp命令按用户名导入数据库到目标数据库。
    impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;
    (注意:如果导入失败必须删除用户名和用户名下的数据后再重新导入,记得后面添加cascade,sql如下:
        drop user scott cascade;

    (点击查看如何删除表空间和用户及级联关系)
6.导入完成后输入exit,退出

补充:Linux常用命令大全

 

 

你可能感兴趣的:(如何将Linux服务器上的数据库拷贝到另一个服务器上(使用expdp/impdp命令))