- 浏览: 316065 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
bqlin1987:
请问是不是ITeye的代码莫名的换行了?
学习SSO-1 Tomcat启用ssl -
a6821122:
在data-config.xml 里的javascript 不 ...
solr导入Oracle日期时间数据的处理 -
jie_kong:
是flexigrid不是flexgrid
FlexGrid自己用的经验 -
zjnbshifox:
呵呵,我也在摸索阶段,谢谢提醒ligywin 写道还需要补充以 ...
CAS自定义Credentials登录 -
ligywin:
还需要补充以下方法import org.apache.comm ...
CAS自定义Credentials登录
1.create spfile='spfile.ora' from pfile='initaa.ora';
2.show parameter db_name/instance_name/spfile
3.修改静态参数
alter system set audit_trail = 'db' scope=spfile
4.修改动态参数
alter system set resource_limit = true scope=both
5.以sys和scott建立两个并发会话,scott执行
insert into dept values(55,default,default);
在sys 使用transactional关闭数据库
scott提交事务后,检查sys会话
用startup mount启动,显示例程状态
以只读方式打开,显示例程状态
conn / as sysdba conn scott/tiger
insert into dept value(55,default,default);
shutdown transactional;
commit;
startup mount
select status from v$instance;
startup open read only
select status from v$instance;
6.force方式重新启动db
startup force;
7.显示alert文件所在目录,删除该目录下所有文件,
关闭数据库,然后重新启动,查看alert文件确定打开时间
show parameter dump/user_dump_dest
startup force/ shutdown immediate startup
8.以system用户建立会话,执行
alter session set sql_trace=true;
select * from scott.dept;
update emp set sal=1000 where empno=7788;
commit;
alter session set sql_trace=false;
显示用户进程跟踪文件所在目录,并查看内容
connect system/oracle;
alter session set sql_trace=true;
select * from scott.dept;
update scott.emp set sal=1000 where empno=7788;
commit;
alter session set sql_trace=false;
show parameter user_dump_dest;
9.建立数据库(OMF方式)新的SID=test
1)准备参数文件
create spfile from pfile
create pfile='initTEST.ora' from spfile
修改参数:
#非*开头的可以先删除,所有相关的目录要建立起来
*.audit_file_dest='f:\test\adump'
*.background_dump_dest='f:\test\bdump'
*.compatible='10.2.0.1.0'
*.core_dump_dest='f:\test\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='f:\test\flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=200278016
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=601882624
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1' #undo表空间的名车,注意
*.user_dump_dest='f:\test\udump'
#在11g中的参数是
#diagnostic_dest='f:\test\diag\'
#下面几个参数是omf方式建立必须的参数设置,这样可以把原来的control_files配置列表删除
*.db_create_file_dest='f:\'
*.db_create_online_log_dest_1='f:\'
*.db_create_online_log_dest_2='g:\' #控制文件和重做日志文件组,分别放在不同的盘上
建立spfile
create spfile='spfileTEST.ora' from pfile='initTEST.ora';
2) 建立oracle服务和口令文件,指定新数据库的sys密码为test
oradim -new -sid test -intpwd test
3) 启动例程,设置环境变量
shell> set ORACLE_SID=test
sqlplus sys/test as sysdba
startup nomount #启动到nomount方式
#可以先查看一下参数设置
#show parameter db_name/undo_tablespace
4)建立数据库
create database test
logfile
group 1 size 40m,group 2 size 40m #控制文件,重做日志文件组db_create_online_log_dest_n参数指定
datafile size 400m #系统表空间大小
sysaux datafile size 100m #sysaux表空间
default temporary tablespace temp #临时表空间
undo tablespace undotbs1 datafile size 50m #undo 表空间大小 undo_tablespace参数
character set ZHS16GBK #字符集
5)安装数据字典和PL/SQL包
@?\rdbms\admin\catalog
@?\rdbms\admin\catproc
6)安装profile,以system用户安装
conn sys/manager
@?\sqlplus\admin\pupbld
7)网络配置
让客户端应用可以访问数据库
1>配置监听程序,服务器端 Net Manager
监听位置
协议 tcp/ip或者其他可选,一般为tcp/ip
主机 数据库服务器的名称
端口 客户端连接到服务器端的端口,默认1521
数据库服务
全局数据库名:应为db_name.db_domain
oracle主目录:应为$ORACLE_HOME
SID:$ORACLE_SID
重新启动监听程序
lsnrctl start [监听程序名称] -----lsnrctl start listener1
2>配置网络服务名,客户端配置
服务命名
服务器的地址以及SID,端口等
客户端就可以用 conn USERNAME/PASSWORD@服务名的方式连接到配置好的数据库服务器
从pfile回复数据库,电脑重启注册表的信息被删除
1)把pfile(initTEST.ora)复制到oracle存放pfile的默认目录
可以把原来有OMF建立的control_file的配置,
+
*.control_file='f:\test\controlfile\control01.ctl','g:\test\controlfile\control02.ctl'
2)重建oracle例程
oradim -new test -intpwd test
3)set ORACLE_SID=test
sqlplus /nolog
conn sys/test as sysdba;
create spfile from pfile
startup
10。以system用户连接到数据库,然后完成以下任务
1.显示当前用户所有的表名(user_tables)
select table_name from user_tables;
2.显示所有数据库用户名(dba_users)
SELECT username,user_id FROM dba_users;
3.显示所有数据文件名(v$datafile)
SELECT file#,name FROM v$datafile;
4.显示所有控制文件名(v$controlfile)
SELECT name,status FROM v$controlfile;
5.显示数据库名v$database,例程名和状态(v$instance)
select * from v$instance;
6.显示所有数据库表名(dba_tables);
SELECT table_name FROM dba_tables;
11。修改数据库的control_files
1)select name from v$controlfile;
2)alter system set control_files=
'f:\test\controlfile\CONTROL01.CTL',
'g:\test\controlfile\CONTROL02.CTL'
SCOPE=SPFILE;
3)shutdown
4)用host cp(linux)或者host copy命令建立相应的控制文件(一定要在关闭数据库的状态下复制文件)
5)startup
12.重做日子练习
1)增加2个日志组,尺寸分别为100M和50M
ALTER DATABASE ADD LOGFILE GROUP 3
('f:\test\log3a.log',
'f:\test\log3b.log')
size 50M;
ALTER DATABASE ADD LOGFILE GROUP 4
('f:\test\log4a.log',
'g:\test\log4b.log')
size 100M;
2)显示日志组号和成员v$logfile
SELECT GROUP#,MEMBER FROM V$LOGFILE;
3)显示日志组组号、状态,尺寸,日志序列号v$log
SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
SELECT GROUP#,SEQUENCE#,STATUS,BYTES FROM V$LOG;
4)删除当前正在使用的日志组
ALTER SYSTEM SWITCH LOGFILE; 强制切换日志
ALTER SYSTEM CHECKPOINT; 强制检查点
ALTER DATABASE DROP LOGFILE GROUP 4;
ALTER DATABASE DROP LOGFILE MEMBER;
ALTER DATABASE ADD LOGFILE MEMBER
'g:\test\log3b.log' TO GROUP 3;
13.表空间(要删除文件,首先需要删除表空间,才能删除相关的文件)
建立表空间data01,数据文件d:\test\data01.dbf,尺寸50M,区尺寸128k
CREATE TABLESPACE DATA01
DATAFILE 'f:\test\data01.dbf' SIZE 50M
UNIFORM SIZE 128K;
建立大文件表空间,data02,数据文件d:\test\data02.dbf,尺寸200M,区尺寸256k
CREATE BIGFILE TABLESPACE DATA02
DATAFILE 'f:\test\data02' SIZE 200M
UNIFORM SIZE 256K;
建立undo表空间undotbs2,数据文件d:\test\undo02.dbf,尺寸100m
CREATE UNDO TABLESPACE UNDOTBS2
DATAFILE 'f:\test\undo02.dbf' SIZE 100M;
建立临时表空间temp2,临时文件d:\test\temp02.dbf,尺寸10m
CREATE TEMPORARY TABLESPACE temp02
TEMPFILE 'f:\test\temp02.dbf' SIZE 10M;
create table a1(cola int) tablespace data01 storage(minextents 2);
create table a2(colo int) tablespace data02 storage(minextents 2);
显示a1和a2端的区个数和尺寸(user_segments)
SELECT TABLESPACE_NAME,SEGMENT_NAME,BYTES,EXTENTS FROM USER_SEGMENTS
WHERE SEGMENT_NAME='A1' OR SEGMENT_NAME='A2';
显示所有表空间名称和区管理方式(dba_tablespaces);
SELECT TABLESPACE_NAME,SEGMENT_SPACE_MANAGEMENT
FROM DBA_TABLESPACES;
14.建立DATA03表空间,数据文件d:\test\data03.dbf,尺寸10m,激活自动扩展
每次扩展10M,
CREATE TABLESPACE data03
DATAFILE 'f:\test\data03.dbf' SIZE 10M
AUTOEXTEND ON
NEXT 10M;
设置数据库默认表空间为data03
ALTER DATABASE DEFAULT TABLESPACE DATA03;
脱机data03表空间,然后建立表a4?
ALTER TABLESPACE DATA03 OFFLINE;
建立表会出错
联机data03表空间,重建表a4
ALTER TABLESPACE DATA03 ONLINE;
15.练习
使用ALTER SYSTEM设置数据文件位置为e:\
show parameter create;
ALTER SYSTEM SET db_create_file_dest = 'g:\';
建立OMF表空间data05,尺寸,100M
CREATE TABLESPACE data05;
建立OMF表空间data06,尺寸,20M,区尺寸256k
CREATE TABLESPACE data06 DATAFILE SIZE 20M UNIFORM SIZE 256K;
在data06上建立a6表
CREATE TABLE a6(cola int) tablespace data06;
删除data06表空间以及对象
DROP TABLESPACE data06 INCLUDING CONTENTS;
显示表空间data05的数据文件名以及尺寸(dba_data_files)
DESC DBA_DATA_FILES;
SELECT TABLESPACE_NAME,STATUS,BYTES,FILE_NAME FROM DBA_DATA_FILES;
16.移动SYSTEM表空间文件
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 180358068 bytes
Database Buffers 415236096 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> ALTER DATABASE RENAME FILE 'F:\TEST\DATAFILE\O1_MF_SYSTEM_40OGHBXS_.DBF'
2 TO 'g:\test\system01.dbf';
数据库已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
17.建立undo表空间,undotbs4,尺寸100M
CREATE UNDO TABLESPACE undotbs4
DATAFILE 'f:\test\undotbs4.dbf' SIZE 100M;
显示当前正在使用的undo表空间
show parameter undo;
删除当前正在使用的undo表空间
ALTER SYSTEM SET UNDO_TABLESPACE=undotbs4;
DROP TABLESPACE UNDOTBS1;
18.日志
显示表空间SYSTEM的数据文件名和尺寸(DBA_DATA_FILES)
SELECT FILE_NAME,BYTES FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME='SYSTEM';
显示所有数据文件的编号,名称和检查点时刻的SCN(V$DATAFILE)
SELECT FILE#,NAME,CHECKPOINT_CHANGE#
FROM V$datafile;
显示日志组编号,起始SCN(V$LOG)
SELECT GROUP#,FIRST_CHANGE#,SEQUENCE#
FROM v$log;
显示数据库名,日志模式,当前SCN值
SQL> SELECT NAME,LOG_MODE,CURRENT_SCN FROM v$database;
NAME LOG_MODE CURRENT_SCN
--------- ------------ -----------
TEST NOARCHIVELOG 263778
显示所有控制文件名称V$CONTROLFILES
SELECT * FROM v$controlfile;
显示日志历史的序号,其实SCN和切换SCN(V$LOGHIST)
SELECT * FROM v$loghist;
19.在恢复的时候通过以下语句看恢复的进度。
select undoblocksdone/undoblockstotal from v$fast_start_transactions;
20.归档日志
显示数据库名及日志模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
按照步骤转变数据库为ARCHIVELOG模式
shutdown immediate;
startup mount;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
显示数据库名及日志模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
手工切换日志2次,然后显示所生成的归档日志名(v$archived_log)
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
DESC v$ARCHIVED_LOG;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
21.归档位置
在d,e,f盘建立3个归档目录archive
host mkdir f:\archive;
host mkdir g:\archive;
修改一下参数
log_archive_dest_1='location='d:\archive'
log_archive_dest_2='location='e:\archive'
log_archive_dest_3='location='f:\archive'
log_archive_format='%s_%r.%t'
log_archive_max_process=7
重新启动数据库
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='location=f:\archive';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location=g:\archive';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%s_%r.%t' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=7;
shutdown immediate;
startup
手工切换日志3次,显示所有归档日志名称和序列号(V$ARCHIVED_LOG)
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
禁用位置2,手工切换日志,然后显示所有归档日志名称和序列号
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
ALTER SYSTEM SWITCH LOGFILE;
激活位置2,手工切换日志,然后显示所有归档日志名称和序列号
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
22.rman练习
rman sys/test@test
显示所有配置参数
show all
执行以下命令进行配置
configure channel device type disk 'd:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
执行backup tablespace data01;备份3次,每次备份后执行report obsolete
删除旧的备份(delete obsolete noprompt)
configure channel device type disk format='d:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
backup tablespace data01;
report obsolete;
backup tablespace data01;
report obsolete;
backup tablespace data01;
report obsolete;
delete noprompt obsolete ;#注意noprompt必须在前面
23.RMAN
配置rman
configure channel device type disk format 'e:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
报告3天威备份的数据文件,报告备份次数少于2次的数据文件
report need backup days 3;
report need backup redundancy 2;
备份users表空间2次
backup tablespace 'users'
报告3天威备份的数据文件,报告备份次数少于2次的数据文件
report need backup days 3;
report need backup redundancy 2;
列出users表空间的备份集,查看SCN
list backup of tablespace 'users';
分别删除所有备份集和副本
delete backup;
delete copy;
建立数据文件4的备份集
backup datafile 4;
使用并行化方式备份数据库(并行度4)
configure device type disk parallelism 4;
backup database;
备份过去一天的归档日志
backup format 'd:\backup\%t_%s_%p'
archivelog all delete all input;
分别备份当前控制文件和spfile
backup current controlfile;
backup spfile;
列出当前控制文件的备份集
list backup
list copy of datafile/..
列出所有数据文件的副本
list copy of database;
使用并行化方式建立所有数据文件副本
configure device type disk parallelism 4;
backup as copy database;
建立控制文件副本
backup as copy current controlfile;
分别删除所有的备份集和副本
delete backup;
delete copy;
在数据库上执行增量0级备份
backup incremental level 0 database;
在数据库上执行增量1级备份
backup incremental level 1 database;
在数据库上执行累积1级备份
backup incremental level 1 cumulative database;
备份users表空间,设置标记为users
backup tablespace users tag=users;
列出表空间users的备份集,并检查标记
list backup of users system;
恢复数据库
run {
startup force mount;
restore database;
recover database;
alter database open;
}
回复表空间system
run{
startup mount;
restore datafile 1;
recover datafile 1;
alter database open;
};
恢复其他表空间数据文件,磁盘损坏,需要保存到其他地方,在open状态恢复
run{
startup mount;#装载数据库
sql 'alter database datafile 4 offline '; #使损坏的数据文件脱机
alter database open;#打开数据库
set newname for datafile 4 to 'd:\newname.dbf';#设置数据文件的新位置
restore datafile 4;#转储数据文件
switch datafile 4 ;#切换数据文件
recover datafile 4;#恢复数据文件
sql 'alter database datafile 4 online';#使数据文件联机
}
基于时间点恢复
先要在os设置NLS_DATE_FORMAT
run {
shutdown immediate ;#关闭数据库
startup mount;#装载数据库
set until time='2008-04-22:11:22:00'#设置恢复的时间点,NLS_DATE_FORMAT一致
restore database;#转储数据库
recover database;#恢复数据库
alter database open resetlogs;#打开数据库(RESETLOGS一定要带)
backup database;#备份数据库
}
基于SEQUENCE恢复
run{
startup mount;#装载数据库
set until sequence 5 thread 1;#设置要恢复到的日志序列号
restore database;#转储数据库
recover database;#恢复数据库
alter database open resetlogs;#打开数据库RESETLOGS
#备份数据库
}
2.show parameter db_name/instance_name/spfile
3.修改静态参数
alter system set audit_trail = 'db' scope=spfile
4.修改动态参数
alter system set resource_limit = true scope=both
5.以sys和scott建立两个并发会话,scott执行
insert into dept values(55,default,default);
在sys 使用transactional关闭数据库
scott提交事务后,检查sys会话
用startup mount启动,显示例程状态
以只读方式打开,显示例程状态
conn / as sysdba conn scott/tiger
insert into dept value(55,default,default);
shutdown transactional;
commit;
startup mount
select status from v$instance;
startup open read only
select status from v$instance;
6.force方式重新启动db
startup force;
7.显示alert文件所在目录,删除该目录下所有文件,
关闭数据库,然后重新启动,查看alert文件确定打开时间
show parameter dump/user_dump_dest
startup force/ shutdown immediate startup
8.以system用户建立会话,执行
alter session set sql_trace=true;
select * from scott.dept;
update emp set sal=1000 where empno=7788;
commit;
alter session set sql_trace=false;
显示用户进程跟踪文件所在目录,并查看内容
connect system/oracle;
alter session set sql_trace=true;
select * from scott.dept;
update scott.emp set sal=1000 where empno=7788;
commit;
alter session set sql_trace=false;
show parameter user_dump_dest;
9.建立数据库(OMF方式)新的SID=test
1)准备参数文件
create spfile from pfile
create pfile='initTEST.ora' from spfile
修改参数:
#非*开头的可以先删除,所有相关的目录要建立起来
*.audit_file_dest='f:\test\adump'
*.background_dump_dest='f:\test\bdump'
*.compatible='10.2.0.1.0'
*.core_dump_dest='f:\test\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='test'
*.db_recovery_file_dest='f:\test\flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=200278016
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=601882624
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1' #undo表空间的名车,注意
*.user_dump_dest='f:\test\udump'
#在11g中的参数是
#diagnostic_dest='f:\test\diag\'
#下面几个参数是omf方式建立必须的参数设置,这样可以把原来的control_files配置列表删除
*.db_create_file_dest='f:\'
*.db_create_online_log_dest_1='f:\'
*.db_create_online_log_dest_2='g:\' #控制文件和重做日志文件组,分别放在不同的盘上
建立spfile
create spfile='spfileTEST.ora' from pfile='initTEST.ora';
2) 建立oracle服务和口令文件,指定新数据库的sys密码为test
oradim -new -sid test -intpwd test
3) 启动例程,设置环境变量
shell> set ORACLE_SID=test
sqlplus sys/test as sysdba
startup nomount #启动到nomount方式
#可以先查看一下参数设置
#show parameter db_name/undo_tablespace
4)建立数据库
create database test
logfile
group 1 size 40m,group 2 size 40m #控制文件,重做日志文件组db_create_online_log_dest_n参数指定
datafile size 400m #系统表空间大小
sysaux datafile size 100m #sysaux表空间
default temporary tablespace temp #临时表空间
undo tablespace undotbs1 datafile size 50m #undo 表空间大小 undo_tablespace参数
character set ZHS16GBK #字符集
5)安装数据字典和PL/SQL包
@?\rdbms\admin\catalog
@?\rdbms\admin\catproc
6)安装profile,以system用户安装
conn sys/manager
@?\sqlplus\admin\pupbld
7)网络配置
让客户端应用可以访问数据库
1>配置监听程序,服务器端 Net Manager
监听位置
协议 tcp/ip或者其他可选,一般为tcp/ip
主机 数据库服务器的名称
端口 客户端连接到服务器端的端口,默认1521
数据库服务
全局数据库名:应为db_name.db_domain
oracle主目录:应为$ORACLE_HOME
SID:$ORACLE_SID
重新启动监听程序
lsnrctl start [监听程序名称] -----lsnrctl start listener1
2>配置网络服务名,客户端配置
服务命名
服务器的地址以及SID,端口等
客户端就可以用 conn USERNAME/PASSWORD@服务名的方式连接到配置好的数据库服务器
从pfile回复数据库,电脑重启注册表的信息被删除
1)把pfile(initTEST.ora)复制到oracle存放pfile的默认目录
可以把原来有OMF建立的control_file的配置,
+
*.control_file='f:\test\controlfile\control01.ctl','g:\test\controlfile\control02.ctl'
2)重建oracle例程
oradim -new test -intpwd test
3)set ORACLE_SID=test
sqlplus /nolog
conn sys/test as sysdba;
create spfile from pfile
startup
10。以system用户连接到数据库,然后完成以下任务
1.显示当前用户所有的表名(user_tables)
select table_name from user_tables;
2.显示所有数据库用户名(dba_users)
SELECT username,user_id FROM dba_users;
3.显示所有数据文件名(v$datafile)
SELECT file#,name FROM v$datafile;
4.显示所有控制文件名(v$controlfile)
SELECT name,status FROM v$controlfile;
5.显示数据库名v$database,例程名和状态(v$instance)
select * from v$instance;
6.显示所有数据库表名(dba_tables);
SELECT table_name FROM dba_tables;
11。修改数据库的control_files
1)select name from v$controlfile;
2)alter system set control_files=
'f:\test\controlfile\CONTROL01.CTL',
'g:\test\controlfile\CONTROL02.CTL'
SCOPE=SPFILE;
3)shutdown
4)用host cp(linux)或者host copy命令建立相应的控制文件(一定要在关闭数据库的状态下复制文件)
5)startup
12.重做日子练习
1)增加2个日志组,尺寸分别为100M和50M
ALTER DATABASE ADD LOGFILE GROUP 3
('f:\test\log3a.log',
'f:\test\log3b.log')
size 50M;
ALTER DATABASE ADD LOGFILE GROUP 4
('f:\test\log4a.log',
'g:\test\log4b.log')
size 100M;
2)显示日志组号和成员v$logfile
SELECT GROUP#,MEMBER FROM V$LOGFILE;
3)显示日志组组号、状态,尺寸,日志序列号v$log
SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;
SELECT GROUP#,SEQUENCE#,STATUS,BYTES FROM V$LOG;
4)删除当前正在使用的日志组
ALTER SYSTEM SWITCH LOGFILE; 强制切换日志
ALTER SYSTEM CHECKPOINT; 强制检查点
ALTER DATABASE DROP LOGFILE GROUP 4;
ALTER DATABASE DROP LOGFILE MEMBER;
ALTER DATABASE ADD LOGFILE MEMBER
'g:\test\log3b.log' TO GROUP 3;
13.表空间(要删除文件,首先需要删除表空间,才能删除相关的文件)
建立表空间data01,数据文件d:\test\data01.dbf,尺寸50M,区尺寸128k
CREATE TABLESPACE DATA01
DATAFILE 'f:\test\data01.dbf' SIZE 50M
UNIFORM SIZE 128K;
建立大文件表空间,data02,数据文件d:\test\data02.dbf,尺寸200M,区尺寸256k
CREATE BIGFILE TABLESPACE DATA02
DATAFILE 'f:\test\data02' SIZE 200M
UNIFORM SIZE 256K;
建立undo表空间undotbs2,数据文件d:\test\undo02.dbf,尺寸100m
CREATE UNDO TABLESPACE UNDOTBS2
DATAFILE 'f:\test\undo02.dbf' SIZE 100M;
建立临时表空间temp2,临时文件d:\test\temp02.dbf,尺寸10m
CREATE TEMPORARY TABLESPACE temp02
TEMPFILE 'f:\test\temp02.dbf' SIZE 10M;
create table a1(cola int) tablespace data01 storage(minextents 2);
create table a2(colo int) tablespace data02 storage(minextents 2);
显示a1和a2端的区个数和尺寸(user_segments)
SELECT TABLESPACE_NAME,SEGMENT_NAME,BYTES,EXTENTS FROM USER_SEGMENTS
WHERE SEGMENT_NAME='A1' OR SEGMENT_NAME='A2';
显示所有表空间名称和区管理方式(dba_tablespaces);
SELECT TABLESPACE_NAME,SEGMENT_SPACE_MANAGEMENT
FROM DBA_TABLESPACES;
14.建立DATA03表空间,数据文件d:\test\data03.dbf,尺寸10m,激活自动扩展
每次扩展10M,
CREATE TABLESPACE data03
DATAFILE 'f:\test\data03.dbf' SIZE 10M
AUTOEXTEND ON
NEXT 10M;
设置数据库默认表空间为data03
ALTER DATABASE DEFAULT TABLESPACE DATA03;
脱机data03表空间,然后建立表a4?
ALTER TABLESPACE DATA03 OFFLINE;
建立表会出错
联机data03表空间,重建表a4
ALTER TABLESPACE DATA03 ONLINE;
15.练习
使用ALTER SYSTEM设置数据文件位置为e:\
show parameter create;
ALTER SYSTEM SET db_create_file_dest = 'g:\';
建立OMF表空间data05,尺寸,100M
CREATE TABLESPACE data05;
建立OMF表空间data06,尺寸,20M,区尺寸256k
CREATE TABLESPACE data06 DATAFILE SIZE 20M UNIFORM SIZE 256K;
在data06上建立a6表
CREATE TABLE a6(cola int) tablespace data06;
删除data06表空间以及对象
DROP TABLESPACE data06 INCLUDING CONTENTS;
显示表空间data05的数据文件名以及尺寸(dba_data_files)
DESC DBA_DATA_FILES;
SELECT TABLESPACE_NAME,STATUS,BYTES,FILE_NAME FROM DBA_DATA_FILES;
16.移动SYSTEM表空间文件
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 180358068 bytes
Database Buffers 415236096 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> ALTER DATABASE RENAME FILE 'F:\TEST\DATAFILE\O1_MF_SYSTEM_40OGHBXS_.DBF'
2 TO 'g:\test\system01.dbf';
数据库已更改。
SQL> ALTER DATABASE OPEN;
数据库已更改。
17.建立undo表空间,undotbs4,尺寸100M
CREATE UNDO TABLESPACE undotbs4
DATAFILE 'f:\test\undotbs4.dbf' SIZE 100M;
显示当前正在使用的undo表空间
show parameter undo;
删除当前正在使用的undo表空间
ALTER SYSTEM SET UNDO_TABLESPACE=undotbs4;
DROP TABLESPACE UNDOTBS1;
18.日志
显示表空间SYSTEM的数据文件名和尺寸(DBA_DATA_FILES)
SELECT FILE_NAME,BYTES FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME='SYSTEM';
显示所有数据文件的编号,名称和检查点时刻的SCN(V$DATAFILE)
SELECT FILE#,NAME,CHECKPOINT_CHANGE#
FROM V$datafile;
显示日志组编号,起始SCN(V$LOG)
SELECT GROUP#,FIRST_CHANGE#,SEQUENCE#
FROM v$log;
显示数据库名,日志模式,当前SCN值
SQL> SELECT NAME,LOG_MODE,CURRENT_SCN FROM v$database;
NAME LOG_MODE CURRENT_SCN
--------- ------------ -----------
TEST NOARCHIVELOG 263778
显示所有控制文件名称V$CONTROLFILES
SELECT * FROM v$controlfile;
显示日志历史的序号,其实SCN和切换SCN(V$LOGHIST)
SELECT * FROM v$loghist;
19.在恢复的时候通过以下语句看恢复的进度。
select undoblocksdone/undoblockstotal from v$fast_start_transactions;
20.归档日志
显示数据库名及日志模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
按照步骤转变数据库为ARCHIVELOG模式
shutdown immediate;
startup mount;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
显示数据库名及日志模式
SELECT NAME,LOG_MODE FROM V$DATABASE;
手工切换日志2次,然后显示所生成的归档日志名(v$archived_log)
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
DESC v$ARCHIVED_LOG;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
21.归档位置
在d,e,f盘建立3个归档目录archive
host mkdir f:\archive;
host mkdir g:\archive;
修改一下参数
log_archive_dest_1='location='d:\archive'
log_archive_dest_2='location='e:\archive'
log_archive_dest_3='location='f:\archive'
log_archive_format='%s_%r.%t'
log_archive_max_process=7
重新启动数据库
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='location=f:\archive';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location=g:\archive';
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%s_%r.%t' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=7;
shutdown immediate;
startup
手工切换日志3次,显示所有归档日志名称和序列号(V$ARCHIVED_LOG)
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
禁用位置2,手工切换日志,然后显示所有归档日志名称和序列号
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;
ALTER SYSTEM SWITCH LOGFILE;
激活位置2,手工切换日志,然后显示所有归档日志名称和序列号
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SWITCH LOGFILE;
SELECT NAME,SEQUENCE# FROM V$ARCHIVED_LOG;
22.rman练习
rman sys/test@test
显示所有配置参数
show all
执行以下命令进行配置
configure channel device type disk 'd:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
执行backup tablespace data01;备份3次,每次备份后执行report obsolete
删除旧的备份(delete obsolete noprompt)
configure channel device type disk format='d:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
backup tablespace data01;
report obsolete;
backup tablespace data01;
report obsolete;
backup tablespace data01;
report obsolete;
delete noprompt obsolete ;#注意noprompt必须在前面
23.RMAN
配置rman
configure channel device type disk format 'e:\backup\%d_%s.bak';
configure retention policy to redundancy 2;
报告3天威备份的数据文件,报告备份次数少于2次的数据文件
report need backup days 3;
report need backup redundancy 2;
备份users表空间2次
backup tablespace 'users'
报告3天威备份的数据文件,报告备份次数少于2次的数据文件
report need backup days 3;
report need backup redundancy 2;
列出users表空间的备份集,查看SCN
list backup of tablespace 'users';
分别删除所有备份集和副本
delete backup;
delete copy;
建立数据文件4的备份集
backup datafile 4;
使用并行化方式备份数据库(并行度4)
configure device type disk parallelism 4;
backup database;
备份过去一天的归档日志
backup format 'd:\backup\%t_%s_%p'
archivelog all delete all input;
分别备份当前控制文件和spfile
backup current controlfile;
backup spfile;
列出当前控制文件的备份集
list backup
list copy of datafile/..
列出所有数据文件的副本
list copy of database;
使用并行化方式建立所有数据文件副本
configure device type disk parallelism 4;
backup as copy database;
建立控制文件副本
backup as copy current controlfile;
分别删除所有的备份集和副本
delete backup;
delete copy;
在数据库上执行增量0级备份
backup incremental level 0 database;
在数据库上执行增量1级备份
backup incremental level 1 database;
在数据库上执行累积1级备份
backup incremental level 1 cumulative database;
备份users表空间,设置标记为users
backup tablespace users tag=users;
列出表空间users的备份集,并检查标记
list backup of users system;
恢复数据库
run {
startup force mount;
restore database;
recover database;
alter database open;
}
回复表空间system
run{
startup mount;
restore datafile 1;
recover datafile 1;
alter database open;
};
恢复其他表空间数据文件,磁盘损坏,需要保存到其他地方,在open状态恢复
run{
startup mount;#装载数据库
sql 'alter database datafile 4 offline '; #使损坏的数据文件脱机
alter database open;#打开数据库
set newname for datafile 4 to 'd:\newname.dbf';#设置数据文件的新位置
restore datafile 4;#转储数据文件
switch datafile 4 ;#切换数据文件
recover datafile 4;#恢复数据文件
sql 'alter database datafile 4 online';#使数据文件联机
}
基于时间点恢复
先要在os设置NLS_DATE_FORMAT
run {
shutdown immediate ;#关闭数据库
startup mount;#装载数据库
set until time='2008-04-22:11:22:00'#设置恢复的时间点,NLS_DATE_FORMAT一致
restore database;#转储数据库
recover database;#恢复数据库
alter database open resetlogs;#打开数据库(RESETLOGS一定要带)
backup database;#备份数据库
}
基于SEQUENCE恢复
run{
startup mount;#装载数据库
set until sequence 5 thread 1;#设置要恢复到的日志序列号
restore database;#转储数据库
recover database;#恢复数据库
alter database open resetlogs;#打开数据库RESETLOGS
#备份数据库
}
发表评论
-
Mysql oracle删除重复记录的sql
2013-03-15 17:20 983MYSQL drop TABLE if EXISTS tm ... -
Oracle动态游标2种写法
2011-10-25 11:17 1315两种写法实现相同的功能,取第一条匹配的数据,如果没有返回nul ... -
CentOS 4.6上安装oracle10g
2008-06-17 19:22 2496首先要确定以下包是否存在: gcc make binu ... -
常用ORACLE SQL语句,不断增加
2008-02-22 15:17 1220自己常用的sql,记录一下,以免忘记 1、查看归档日志信息 ... -
oracle 10g +ASM 启动
2008-02-22 11:17 2928今天oracle 10g服务突然断电,导致数据库服务器无法启动 ...
相关推荐
在"Oracle培训笔记2"中,我们可以看到一系列的课程涵盖了XML基础和多行函数的应用,这些都是Oracle数据库管理和开发中的关键知识点。 XML(可扩展标记语言)在Oracle中的应用非常广泛,特别是在数据交换和存储非...
这份"学费十万元人民币的Oracle培训笔记"无疑是一份珍贵的学习资源,它涵盖了从基础到高级的Oracle知识体系,可以帮助读者深入理解Oracle数据库的工作原理和管理技巧。 笔记首先可能会从Oracle的基础概念入手,包括...
### Oracle培训笔记规范 #### 笔记撰写规则 1. **标题与总结**:使用标题对内容进行规范和总结,方便快速检索和复习。 2. **书写格式**:遵循统一的书写标准,多利用格式刷保持一致性。 3. **语言精炼**:避免冗余...
"东方标准Oracle培训笔记"很可能是针对初学者或专业人士提供的一套系统性的学习资料,旨在帮助读者深入理解和掌握Oracle的相关技术。这些笔记可能涵盖了Oracle的基础知识、安装配置、SQL语言、数据库管理、性能优化...
以下是对Oracle培训笔记的详细解释: **体系结构及管理** Oracle数据库由多个组件构成,包括Oracle Server、用户进程、服务器进程、SGA(系统全局区域)、后台进程等。当用户通过客户应用程序发出SQL语句时,服务器...
Oracle培训笔记.doc
根据提供的“Oracle培训笔记”内容,我们可以总结出以下几个重要的知识点: ### 1. Oracle 序列(Sequence) #### 序列的基本概念: - **Oracle 序列** 是一种数据库对象,用于生成一系列数字,通常用于自动生成表...
### Oracle培训笔记知识点详解 #### 一、关系数据库理论 关系数据库是基于关系模型构建的数据库,它由一系列的对象组成,这些对象主要包括表、视图等。为了保证数据的完整性和一致性,在插入、更新或删除数据时...
"第01阶段-基础+进阶-Oracle培训笔记+作业"涵盖了从Oracle的基础概念到进阶技能的学习材料,这对于想要深入理解Oracle数据库的初学者或寻求提升的专业人士来说是一份宝贵的资源。 首先,Oracle的基础部分通常包括...