Oracle复习题.docx
《Oracle复习题.docx》由会员分享,可在线阅读,更多相关《Oracle复习题.docx(26页珍藏版)》请在冰点文库上搜索。
Oracle复习题
Oracle复习提纲
主要命令:
一、备份表空间(在归档模式下操作)
select'copy'||name||'D:
\backup'fromv$datafile;
select'copy'||name||'D:
\backup'fromv$controlfile;
select'copy'||name||'D:
\backup'fromv$tempfile;
select'copy'||member||'D:
\backup'fromv$logfile;
1、设置归档模式
shutdownimmediate;
startupmount;
alterdatabasearchivelog;
alterdatabaseopen;
验证
archiveloglist;
2、查看数据文件
selectstatus,file#,namefromv$datafile;
3、备份
(1)、备份userstablespace
联机备份
connect/assysdba;
altertablespaceusersbeginbackup;
复制F:
\app\Administrator\oradata\orcl\USERS01.DBF
altertablespaceusersendbackup;
altersystemarchivelogcurrent;
操作
connectscott/tiger
select*fromdept;
insertintodeptvalues(50,'琴岛学院','城阳');
commit;
connect/assysdba
shutdownimmediate;
把备份拷回
startup;
recoverdatafile3;
alterdatabaseopen;
再查看
connectscott/tiger;
select*fromdept;
脱机备份
alterdatabasedatafile'F:
\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'offlinenormal;
copyF:
\app\Administrator\oradata\orcl\USERS01.DBF
recoverdatafile'F:
\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF';
以temporary、immediate方式脱机时需要进行修复,normal方式不需要修复。
alterdatabasedatafile'F:
\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'online;
altersystemarchivelogcurrent;
操作
connectscott/tiger
select*fromdept;
insertintodeptvalues(50,'琴岛学院','城阳');
commit;
恢复
connect/assysdba
shutdownimmediate;
把备份拷回
startup;
recoverdatafile3;
alterdatabaseopen;
再查看
connectscott/tiger;
select*fromdept;
(2)、备份systemtablespace
altertablespacesystembeginbackup;
复制F:
\app\Administrator\oradata\orcl\SYSTEM01.DBF
altertablespacesystemendbackup;
shutdownabort;
startupmount;
alterdatabasedatafile'F:
\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'offline;
用复制的F:
\app\Administrator\oradata\orcl\SYSTEM01.DBF替换原来的
recoverdatafile'F:
\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF';
alterdatabasedatafile'F:
\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'online;
查看数据文件
selectstatus,file#,namefromv$datafile;
select*fromv$backup;
selectcheckpoint_change#,namefromv$datafile;
altersystemcheckpoint;
selectfile#,checkpoint_change#fromv$datafile;
altertablespaceusersreadonly;
selectfile#,last_change#fromv$datafile;
selecttablespace_name,file_namefromdba_data_files;
shutdownimmediate;
startupmount
selectrecid,sequence#,first_change#,next_change#fromv$log_history;
@backup.sql
alterdatabasebackupcontrolfiletotrace;
alterdatabasebackupcontrolfileto'd:
\ctl.bak';
二、创建密码文件的步骤
1、确定实例的名称
OracleServiceORCL
2、确定密码文件的路径和名称
selectnamefromv$database;
3、停止数据库
shutdownimmediate
删除旧的密码文件
F:
\app\Administrator\product\11.2.0\dbhome_1\database\PWDorcl.ora
4.orapwdfile=F:
\app\Administrator\product\11.2.0\dbhome_1\database\pwdorcl.orapassword=123
重启OracleServiceORCL服务
把Administrator从ora_dba组中删除
登陆:
sqlplussys/123assysdba
三、控制文件
减少控制文件个数
命令:
spoolE:
a.txt
select*fromv$controlfile;
altersystemsetcontrol_files='F:
\app\Administrator\oradata\orcl\control01.ctl'scope=spfile;
select*fromv$controlfile;
shutdownimmediate
startup
select*fromv$controlfile;
selectvaluefromv$spparameterwherename='control_files';
spooloff
增加控制文件的个数
命令:
altersystemsetcontrol_files='',''scope=spfile;
selectvaluefromv$spparameterwherename='control_files';
select*fromv$controlfile;
shutdownimmediate
复制文件
Startup
selectvaluefromv$spparameterwherename='control_files';
select*fromv$controlfile;
实际操作过程:
SQL>select*fromv$controlfile;
SQL>altersystemsetcontrol_files='F:
\app\Administrator\oradata\orcl\control01.ctl'scope=spfile;
SQL>selectvaluefromv$spparameterwherename='control_files';
SQL>select*fromv$controlfile;
SQL>shutdownimmediate
SQL>startup
SQL>select*fromv$controlfile;
SQL>selectvaluefromv$spparameterwherename='control_files';
四、数据文件改名
1、offline
2、复制到新的名称
3、alterdatadaserenamefile'...\old'to'...\new';
4、online
五、归档模式下操作
1.设置归档模式
shutdownimmediate;
startupmount;
alterdatabasearchivelog;
alterdatabaseopen;
验证
archiveloglist;
2.rman命令
连接
备份图
<------------------------------------------------>
<----------------------->★¢★
0<---->2<---->21<---->2<---->21c考试重点
___________________________________________________________________
日一二三四五六
connecttarget/
reportschema;
backupincrementallevel0datafile4format'E:
\bk\users01_%d_%s_p';
backupincrementallevel2datafile4format'E:
\bk\users01_%d_%p_%u';
backupincrementallevel2datafile4format'E:
\bk\users01_%d_%p_%u';
backupincrementallevel1datafile4format'E:
\bk\users01_%d_%p_%u';
backupincrementallevel2datafile4format'E:
\bk\users01_%d_%p_%u';
backupincrementallevel2datafile4format'E:
\bk\users01_%d_%p_%u';
backupcumulativeincrementallevel1datafile4format'E:
\bk\users01_%d_%p_%u';
作业命令:
分配通道,备份整个数据库
run{allocatechanneld1devicetypediskformat='E:
\bk\ora_%p_%u';
backupdatabase;}
setlimitchanneld2kbytes=10000;
启用rman的恢复目录
1、创建rman所需的表空间
d:
/>sqlplus/assysdba
sql>createtablespacets_rmandatafile'e:
\oracle\oradata\ora\tsrman01.dbf'size50M;
2、创建rman用户并授权
sql>createuserrmanidentifiedbyrmandefaulttablespacets_rman;
sql>grantconnect,resource,recovery_catalog_ownertorman;
3、初始化恢复目录
d:
/>rmancatalogrman/rman
rman>createcatalog;
rman>exit
4、注册由rman管理的数据库
d:
/>rmantarget/catalogrman/rman
rman>registerdatabase;
创建脚本
createscriptb1{backupincrementallevel1datafile4format'E:
\bk\users01_%d_%p_%u';}
执行脚本
run{executescriptb1}
六、表空间命令:
1、查看表空间
select*fromv$tablespace;
selecttablespace_name,file_name,ceil(bytes/1024/1024)fromdba_data_files;
descv$tablespace
descv$datafile
selectname,bytes/block_size,blocksfromv$datafile;
selecttablespace_name,file_namefromdba_data_files;
selecttablespace_name,file_namefromdba_data_files;
2、创建永久表空间
createtablespacetsldatafile'D:
\oracle\oradata\a.dbf'size5M;
添加表空间
altertablespacetsladddatafile'D:
\oracle\oradata\b.dbf'size10M;
删除表空间
altertablespacetsldropdatafile'D:
\oracle\oradata\b.dbf';
3、创建临时表空间
createtemporarytablespacetemp01tempfile'D:
\oradata\temp01.dbf'size6M;
createtemporarytablespacetemp02tempfile'D:
\oradata\temp02.dbf'size6M;
更改默认表空间为temp02
alterdatabasedefaulttemporarytablespacetemp02;
4、创建undo表空间
createundotablespaceundo01datafile'D:
\oradata\undo01.dbf'size6M;
5、创建test用户
createusertestidentifiedbytestdefaulttablespacetsltemporarytablespacetemp;
//密码若全是数字要放在引号中
给test用户授权
grantconnect,resourcetotest;
连接到test用户
connecttest/test;
创建student表
createtablestudent(idnumber(10,0)primarykey,snamevarchar2(30));
插入数据
begin
foriin1..40loop
insertintostudent(id,sname)values(i,'aaaaaaa');
endloop;
commit;
end;
查看
select*fromstudent;
6、锁定用户
alterusernameaccountlock;
解锁
alterusernameaccountunlock;
7、授给某用户可对另一用户中某对象进行操作的权限
grantselect/insert/updata/allon表名to用户名;
授给用户test1创建同义词的权限
grantcreatesynonymtotest1;
在test1中创建同义词
createsynonymstufortest.student;
8、表空间的脱机与联机
altertablespacenameoffline/online;
9、给表空间改名
altertablespacetslrenametots2;
//system和sysaux不能改名
//脱机的表空间不能改名
七、二进制文件
1、selectISSPECIFIED,count(*)fromv$spparametergroupbyISSPECIFIED;
2、selectname,valuefromv$spparameterwhereISSPECIFIED='TRUE';
3、只修改内存的值,不改变二进制文件的设置,重新启动数据库后,更改失效。
能修改的前提是:
此参数可以动态修改。
altersystemsetpga_aggregate_target=30scope=memory;
4、只修改二进制文件,不修改内存,重新启动数据库后方可生效。
altersystemsetpga_aggregate_target=30scope=spfile;
5、同时修改二进制文件和内存,前提:
该参数可以动态修改。
scope:
默认为both
altersystemsetpga_aggregate_target=30scope=both;
6、altersystemresettrace_enabledscope=spfilesid='*';
selectname,valuefromv$spparameterwhereisspecified='TRUE';
整个过程:
SQL>selectISSPECIFIED,count(*)fromv$spparametergroupbyISSPECIFIED;
SQL>altersystemsetpga_aggregate_target=30scope=memory;
SQL>altersystemsetpga_aggregate_target=30scope=spfile;
SQL>altersystemsetpga_aggregate_target=30scope=both;
八、将数据库更改为归档模式
1、关闭数据库(一定要一致性关闭,正常关闭)
shutdownimmediate
2、重启数据库到mount状态
startupmount
3、更改数据库到归档模式
alterdatabasearchivelog;
非归档模式
alterdatabasenoarchivelog;
4、打开数据库
alterdatabaseopen;
5、验证
archiveloglist
6、设置归档位置
altersystemsetlog_archive_dest='d:
\arcs'scope=spfile;
注意:
d:
\arcs这个路径要存在
7、设置归档文件的文件名模式
altersystemsetlog_archive_format='ARC%S_%R.%T'scope=spfile;
%s:
logsequencenumber
%S:
logsequencenumber,zerofilled
%t:
threadnumber
%T:
threadnumber,zerofilled
%a:
activationID
%d:
databaseid
%r:
resetlogid
8、selectvaluefromv$parameterwherename='log_archive_dest';
9、altersystemswitchlogfile;
10、archivelogstop
archivelogstart
11、查看已经归档的日志
selectnamefromv$archived_log;
select*fromv$archive_processes;
九、逻辑备份
1、帮助命令:
exphelp=y
2、命令行参数方式
expusername/passwordfile=文件名log=文件名
参数说明:
3、交互提示命令
C:
\>exp回车后根据命令进行操作
或C:
\>expusername/password
或C:
\>expusername/password@net_service_name
4、参数文件方式
参数文件expar.dat如下:
full=y
file=dba.imp
grants=y
indexes=y
contistent=y
启动命令:
expusername/passwordparfile=expar.dat
或
expparfile=expar.dat
5、notepad打开一个新的记事本
notepadcreateUser.sql创建记事本createUser.sql
@createUser.sql执行脚本
十、添加日志组文件
select*fromv$log;//查看日志组
select*fromv$logfile;//查看日志文件
altersystemswitchlogfile;//手动切换日志组
alterdatabaseaddlogfilegroup5'E:
oracle\redo05.log'size4M;//添加日志组
select*fromv$log;
select*fromv$logfile;//添加成员,要指明组,不要指明大小,他与现有日志大小相同
alterdatabaseaddlogfilemember'E:
oracle\redo06.log'togroup2;//添加成员到现有组
alterdatabasedroplogfilemember'E:
oracle\redo06.log';//删除日志组内成员
alterdatabaserenamefile'