Linux系统Oracle&Mysql数据库导入导出

4 篇文章 0 订阅
1 篇文章 0 订阅

目录

Oracle数据库导入导出

一. expdp/impdp 使用

二. 导出实例

1. 检查导出目录

2. 导出数据库文件

3. 传输数据库文件

三. 导入实例

1. 数据库文件处理

2. 数据库文件导入

Mysql数据库导入导出

一. 脚本说明

二. 导出实例

三. 导入实例


在Linux服务器上做数据库的导入导出,Oracle与Mysql两种数据库对比而言,Mysql的数据导入导出会简单很多。

Oracle数据库导入导出

一. expdp/impdp 使用

expdp/impdp导入导出的运行命令基础相似,这里就以对比形式进行对常用属性做部分说明:

expdpimpdp
expdp 用户名/密码@IP/数据库实例  [导出属性]impdp 用户名/密码@IP/数据库实例  [导入属性]
用户/密码为数据库用户密码,IP不写默认本地地址,数据库实例为数据库TNS中的SERVICE_NAME
directory=DATA_PUMP_DIR;导入导出的逻辑目录,可默认使用Oracle现有的,也可在oracle中自定义创建,但需给目录授权用户读写权限
dumpfile=xx.dmp;导入导出的数据文件的名称
schemas=user_name;指定用户,如果有dblink,则不是本数据库用户
network_link=db_l;dblink参数,对于导入时,这个参数会限制导入的部分参数配置
expdp的常用参数impdp常用参数
tablespaces=users;使用tablespaces参数导出users表空间内所有的对象tablespaces=users;导入对应表空间users内所有对象
logfile=expdp.log;导出日志文件,默认为expdp.loglogfile=impdp.log;导入日志文件,默认为impdp.log

exclude=view;排除视图

exclude=index:"like '%TEMP%';排除含TEMP索引

exclude=table:\" IN \(\'TABLE1\',\'TABLE2\'\)\";排除多张表

include=sequence;导序列

include = object_type[:"name_expr"];object_type用于指定要排除/包含的对象类型,name_expr用于指定要排除/包含的具体对象.exclude和include不能同时使

TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | REPLACE };该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP
query=user.temp :"where col1 = 1 and col2 > 0";query导出查询得到的结果集REUSE_DATAFIELS={Y | N};该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N

二. 导出实例

1. 检查导出目录

  • Xshell连接数据库服务器后,登录进入oracle用户:su - oracle

  • 登入sqlplus,查看是否存在导出文件目录(DATA_PUMP_DIR):select * from dba_directories;

注意:如果没有或不用现有dpdump目录,需要进入sqlplus创建对应的导出目录,并给目录授权,如下:

a. 创建expdp备份目录:create directory home as '/home/oracle/backup';

b. 对备份目录赋予读写权限:grant read,write on directory home to user;

2. 导出数据库文件

  • 退出sqlplus,按表空间(tbs_perm_hap)导出数据库文件

expdp user/passwork@数据库实例 tablespaces=tbs_xx dumpfile=tbs_2021042314.dmp directory=DATA_PUMP_DIR;

  • 导出成功

3. 传输数据库文件

将导出的数据库文件传输到目标服务器指定目录,需切换到root用户

scp /home/app/oracle/admin/数据库实例/dpdump/tbs_2021042314.dmp root@目标服务器IP:/home/app/oracle/admin/数据库实例/dpdump/

三. 导入实例

1. 数据库文件处理

  • Root用户登陆服务器,查看传输进来的数据库文件

cd /home/app/oracle/admin/数据库实例/dpdump/

  • 给文件赋予777权限:chmod 777 tbs_2021042314.dmp

2. 数据库文件导入

  • 切换用户

切换到Oracle用户:su – oracle

  • 删除表空间

因为是数据库文件导入,有些存在结构(表、索引)无法执行,会被跳过,所以需要先删掉表空间。

1.    将表空间置为offline

alter tablespace tbs_xx offline;

2.    将磁盘上的表空间数据文件一同删除

drop tablespace tbs_xx including contents and datafiles;

  • 创建表空间

1.    查看数据位置

  select * from dba_data_files;

2.    创建命令

create tablespace tbs_xx datafile '/home/app/oracle/oradata/数据库实例/tbsxx.dbf' SIZE 8G autoextend on extent management local segment space management auto;

注意:

创建表空间后,可以同时查看下数据库的密码过期校验,一般密码会默认180天后过期,要到期时会出现次报错:ORA-28002: the password will expire within 7 days

SELECT * FROM dba_profiles s WHERE s.profile = 'DEFAULT' AND s.resource_name = 'PASSMORD_LIFE_TINE';

这时可以通过以下命令,去掉密码有效期校验,命令:

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

  • 数据文件导入

1.    退出sqlplus:exit;

2.    执行导入命令

impdp user/passwork@数据库实例 tablespaces=tbs_xx dumpfile=tbs_2021042314.dmp directory=DATA_PUMP_DIR;

3.    出现以下图则导入成功

Mysql数据库导入导出

Mysql的导入导出是以实例进行操作的,所以在进行导入导出操作前,需要保证目标数据库的数据库实例与源数据库导出数据库实例一致。

一. 脚本说明

  • 导出脚本:mysqldump -h 172.0.0.1 -u root -p h_db > /u01/20210423.sql

参数说明:-h 后面跟的是来源数据库服务器IP

                  -u 后面跟的是数据库账号

                  -p 后面跟的是数据库密码(未写,将在回车后输入)

                  h_db:指的是数据库实例

                  > :后面跟的是文件导出文件路径

  • 导入脚本:source execute.sql;

execute.sql为sql文件具体路径

二. 导出实例

  • 从来源数据库导出脚本SQL

mysqldump -h 172.0.0.1 -u root -p h_db > /u01/backup/20200701.sql

  • 将脚本移动到目标服务器

scp /u01/backup/20200701.sql root@172.0.0.2:/u01/uat_cover_dev_v/

三. 导入实例

  • mysql -uroot -p(登录数据库)
  • use h_db;(选择数据库实例)
  • source /u01/uat_cover_dev_v/20200701.sql;(执行脚本,mysql的执行命令要以;结尾)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琳妹妹的辉哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值