最近准备大版本更新,表改的挺多的要多之前的数据进行备份,以免脚本出问题无法数据回滚。
涉及到linux的一些操作步骤如下:
1,首先找到oracl所在的服务器,登陆命令如下
a: su - oracle 切换oracle用户
b: sqlplus / as sysdba;
c: conn 数据库账号/数据库密码;
2,执行.sql脚本。
a:把sql脚本放到oracle所在服务器文件夹下 例如 /oracle/tmp
b: 执行步骤1连接到目标数据库,并且执行如下命令
@/oracle/tmp/test.sql
3,备份数据库表结构和数据(dump形式)
a,查询dump路径
select * from dba_directories where directory_name='DATA_PUMP_DIR'; (用来存放导出的表的路径)
b:以下导出语句不需要再sql环境下执行(就是退出步骤一 在sql命令中输入exit) 直接在oracl用户下执行 rows=n是带数据的,
exp 数据库账号/数据库密码@数据库ip:端口号/服务名 file='/oracle/app/oracle/dpdump/table.dmp' rows=n tables=test log=/home/oracle/exp_test.log
c:dmp文件导入回滚 在oracle用户下执行下列命令 (回滚的时候要drop掉旧表)
imp 据库账号/数据库密码 file='/oracle/app/oracle/dpdump/table.dmp' full=y ignore=y