背景
由于客户新弄了一个机房用于容灾。需要对生产环境的数据迁移到新机房,重新部署项目。保证异地多活。2个机房主备,可以随时切换。
oracle数据迁移
1.查询原机房数据库MCS_ESIGN_SXDB用户的表空间名:
select DISTINCT owner,tablespace_name from dba_extents where owner like ‘MCS_ESIGN_SXDB’;
2.查询原机房表空间名字为sxdb的dbf文件的文件名字,表空间名,文件大小:
select file_name,tablespace_name,bytes from dba_data_files where tablespace_name = ‘SXDB’;
3.exp导出数据库MCS_ESIGN_SXDB用户的数据为dmp文件,到 /home/oracle/expdata/proddata.dmp
exp MCS_ESIGN_SXDB/123456@orcl file=/home/oracle/expdata/proddata.dmp owner=MCS_ESIGN_SXDB;
4.新机房创建表空间sxdb,dmp文件在/home/oracle/oradata/orcl/sxdb.dbf 用于存放迁移过来的数据数据
create tablespace sxdb datafile ‘/home/oracle/oradata/orcl/sxdb.dbf’ size 1024m autoextend on next 10m maxsize unlimited;
5.新机房创建用户MCS_ESIGN_SXDB,使用刚刚创建的表空间sxdb存放数据
create user MCS_ESIGN_SXDB identified by 123456 default tablespace sxdb;
6.给用户赋予一些权限,可能还需要导入导出的权限
grant connect,resource to MCS_ESIGN_SXDB;
7.导入老机房的proddata.dmp文件到新机房数据库。注意表空间和用户要一致,不然导不进去
imp MCS_ESIGN_SXDB/123456@orcl file = /home/1/proddata.dmp full=y;
上面是手动操作的一些命令,下面是shell脚本demo:
exp:
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#export ORACLE_SID=racdb
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
export DIR=/data/dmp
echo $DIR
echo 'Oracle backup'
exp 'user/passwd@192.168.43.203:1521/racdb' file=/data/dmp/caserver203.dmp log=/data/dmp/caserver203.log owner='user';
echo 'Oracle backup successfully'
imp:
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#export ORACLE_SID=racdb
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
export DIR=/data/dmp
echo $DIR
echo 'Oracle backup'
imp 'user/passwd@192.168.43.203:1521/racdb' file=/data/dmp/caserver.dmp log=/data/dmp/caserver`date +%Y%m%d`.log ignore=y;
echo 'Oracle backup successfully'
minio文件迁移
A老机房 单节点minio
B新机房 集群minio
保证AB机房的minio文件数据实时同步:
采用mc mirror,教程如下:使用MinIO Client客户端实时数据同步备份文件