Oracle基于时间点的备份
1,查询系统的时间:
1> select sysdate from dual;
2>select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from
dual;
2,更改系统的时间格式:
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select sysdate from dual;
3,查看日志模式,是否为归档
1> select log_mode from v$database;
2> archive log list;
4,修改成为归档日志:
1> 在mount 阶段修改: alter database archivelog;
2> 在任意阶段: alter system switch logfile;
5,时间点的备份是基于全备的情况下的
6,backup database format='address%d_%s_%T.bak';
其中%d是序列号,%s是数据库的名称,%T是备份的时间
7,时间点的备份:
流程:
录入~提交~记录时间~录入~提交~记录时间~录入~提交~记
录时间
恢复:
run{
set until time "to_date('time');~~~~~需要
恢复到的时间点
restore database; ~~生成日志文件
recover database;~~~应用日志文件包括归档以后
的文件
sql 'alter database open restartlogs;~~~~执行sql语
句
}
sql重新登录,查表
8,导出表,旧时
exp scott/tiger file=c:/路径.dmp table=t1;
9,导入:
imp scott/tiger file=...... table=t1;
10,远程连接数据库:
sqlplus scott/tiger@oracle oracle是远程的网络服务器名
imp/exp scott/tiger@oracle file=.... table=..;
导入时如果已经存在一个则添加一个ignore=yes
11,创建一个表空间:
create tablespace ts1 datafile 'c:/...' size 10M;
创建用户:
create user user1 identified by abc default
tablespace ts1;
授予其权限:
grant connect,resource to user1;
12,复制一张表:
create table t2 as select * from t1;
create table t3 as select * from t2 union select * from t1;
两个表中的重复的部分省略