ORACLE备份操作手册
操作步骤:
1. 使用Xstart工具登录备份环境,输入账号密码,协议选择SSH,命令选择GNOME,选择好后点击运行,输入密码即可
2. 进入操作界面
1) 右键在终端中打开,首先输入export LANG=en_US.UTF-8 回车,防止乱码现象
2) 输入/oracle/product/10.2.0/db_1/bin/dbca 回车,打开新增数据库实例名:ORCL2, SID: ORCL2 ,设置所有用户密码 orcl2
选择create a database创建一个新的
选择general purpose一般用途
输入实例名
选择默认,直接点击next
根据需要给所有用户分别设置密码或者统一为所有用户设置相同密码,这里我们统一设置相同密码 此次为orcle
这里根据需要或者手动选择安装文件夹路径
这里第三个tab里选择字符集编码 本次选择第二个。
然后就是准备安装的页面了
到此数据库的实例新增完成,下一步准备测试连接新增的实例
注意:
我在安装到最后80%的时候报了这个错,据百度查询说这东西类似个插件,不安装也不影响,这次就没安装,暂时没遇到什么错误,后续如果有错误会来更新此文档,如有他人了解烦请在此处添加说明和解决方法。
百度上查了一些问题原因和影响,也都没说出个所以然。
https://jingyan.baidu.com/article/67508eb42be69a9ccb1ce46f.html
3) 安装完成后本地cmd中测试连接
sqlplus 用户名/密码@ip/实例名
3. 开始备份操作
备份库创建过程:
1) 创建用户分配权限
可使用plsql连接刚才新增加的CROL2实例
连接成功后新增用户newname密码newname
授权grant dba to newname;
2) 创建表空间
示例语句 CREATE TABLESPACE CROL2 DATAFILE '/oracle/oradata/ CROL2/ CROL2.DBF'SIZE 50M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
3) 导入无分区表的表结构
在目标数据库中创建表结构
源数据库Tools-->CompareUser Object,Target Session为目标数据库,User选中crol.
选中需要比较的表,就能够生成同步/创建表结构的语句,执行,就可以在新数据库中得到这些表结构。
4) 创建链接服务器
CREATE DATABASE LINK CROL88 CONNECT TO crolIDENTIFIED BY crol USING ' (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.88)(PORT= 1521)) ) (CONNECT_DATA = (SERVICE_NAME = CROL2) ) )';
5) 创建某表的同义词
此处创建同义词时需注意同义词的字段名长度最大30位,超过30的数据库会自动截掉
create synonym TABLE_88 for [email protected] CROL88;
6) 导入定位数据
insert into 表名 select * from 同义词名;
因各别表数据量过大,plsql执行时连接可能会终端导致数据有误,
此处需使用linux的screen窗口执行insert语句
screen –r进入当前的screen窗口
进入后执行 su – oracle 回车 密码 oracle
进入oracle模式
执行sqlplus 用户名/密码@ip/实例名
执行成功后会变成 SQL>
就可以执行 insert语句了
例如SQL> insertinto TABLE select * from TABLE_88;
SQL>commit;
执行完需commit才会成功提交.
将所有表均执行insert后备份完成.
7) 批量创建其它表的同义词:
注意:表中有大字段的不能用同义词(notin 中的)
手动拼出创建语句,执行查询后得到的为全部表的创建同义词sql语句
select 'createsynonym ' || table_name || '_88 for ' || table_name ||
'@ CROL88;'
from user_tables
批量创建同义词插入语句:
批量操作语句:select 'insert into ' ||rtrim(synonym_name, '_88' )||' select * from '||synonym_name
from dba_synonyms where synonym_namelike '%_88';
8) 创建定位分区表
上边备份的为不带分区的表,定位表和报警表均带分区,所以需单独操作
a.创建分区表空间(nologging为尽量减少日志)
create tablespace TABLE***nologging datafile '/oracle/oradata/CROL/ TABLE***.dbf' size 50m autoextend on next 50m extent management local;
(每天一个空间,要创建一年的,本文档最下边有个批量创建的存储过程)
b.创建分区表(分区表不能指定表空间,如果已有此表则alter table)
(这个本文档最下边也有个批量创建的存储过程,但是首先得先创建出带一个分区的表,必须在创建表时直接创建分区,否则建出的表无法增加分区
4. 批量创建定位表空间存储过程代码(直接复制,修改里边的日期即可)
注意:批量生成时可能报个00059的错误.oralce对文件夹文件数量有个限制,默认200,修改一下需要的数量,然后重启oracle即可.