常见数据库备份恢复过程简介

因为现阶段不管是测试环境, 预生产环境,还是生产环境, 数据库都有数据的重要性存在, 为了保证测试工作连续, 业务工作连续,必须保证数据库可用, 除了常见的 双机热备, Oracle Rac , sqlserver always on ,mysql的binlog复制模式, 读写分离之外, 数据库备份是必不可少的工作. 

本文主要是描述一下在linux 以及部分windows环境上面常见数据库的备份恢复过程. 

本文按照数据库类型进行简单描述. 

本文认为操作者至少拥有简单的数据库和操作系统知识. 

一. Oracle 数据库

Oracle数据库备份方式较多, 除去复制文件的冷备份, 不停机的热备份的方式主要主要有:

1. exp 比较原始的备份方式, Oracle11.2.0.1存在部分问题.  对应的恢复语句是imp

2. expdp 数据泵的备份方式, 比exp的性能要高很多.比较主流 对应的恢复语句是 impdp

3.rman备份 很强大的备份工具, 但是rman备份要求备份库和恢复库的版本一致,所以不太适合测试环境的使用, 本次不在详细描述.

本次主要是说明 expdp 数据库备份方式和impdp的恢复方式. 

前提条件:

数据库备份需要有一个数据库的目录的概念, 并且要保证执行备份恢复操作的用户具有该目录实际文件路径的读写权限.

方式方法:

linux 操作系统中

1. 数据库备份操作

1. 使用工具连接到oracle数据库. 
2. 切换到 oracle 用户
su - oracle
3. 创建一个directory对应的目录  注意为了简单起见可以在ORACLE_HOME的目录下面执行, 这样的话 oracle 的用户可以有相应的权限. 
方法为:

[root@CentOS8 ~]# su - oracle
[oracle@CentOS8 ~]$ echo $ORACLE_HOME
/opt/oracle/product/19c/dbhome_1
[oracle@CentOS8 ~]$ mkdir /opt/oracle/dir
[oracle@CentOS8 ~]$ ll /opt/oracle/

验证该目录/opt/oracle/dir下oracle的用户有读写权限. 

4. 执行 sqlplus 进入控制台操作
sqlplus / as sysdba
5. 创建directory. 
注意 如果使用了PDB的特性 需要在PDB相应的数据库实例下面执行相应的操作, 操作如下:
alter session set container=ora19cpdb;
# 注意 这一步为修改 session ; 等于后面是 oracle的pdb的sid名字. 如果没有pdb模式 不需要执行这个命令.

create or replace directory dir as '/opt/oracle/dir';
# 注意 dir 为变量名字 是定义 oracle 目录的名称. 

grant read,write on directory dir to gscloud2003b4;

# 保证自己的用户有相应的权限

6. 输入exit 退出相应的sqlplus 命令界面, 进入 linux 命令行.
expdp gscloud2003b4/"Test1127?!"@127.0.0.1/ora19cpdb directory=dir schemas=gscloud2003b4 dumpfile=gscloud2003b4_0519.dump logfile=20200519.txt version=12.2.0

备份恢复的操作比较简单:

 2. 数据库恢复操作. 

前面几步操作都是一致的 就是恢复语句有所区别
1. 在需要恢复环境上面创建目录等操作. 2. 为了保证环境正常可用, 建议同名备份恢复, 并且不适用remap tablespace 以及remap schemas的操作.
3. 创建跟备份环境一样的表空间,用户以及赋予相应的权限
su - oracle
sqlplus / as sysdba
进入oracle的sqlplus界面
切换到相应的pdb信息.
alter session set container=ora19cpdb;
impdp

猜你喜欢

转载自www.cnblogs.com/jinanxiaolaohu/p/12914924.html