OCP笔记部分整理-学习参考
database
2. instance
3. session
4. process
5. table
6. index
7. transaction (事务)
8. lock
9. cursor
10. awr(auto workload repository)11. service
12. data guard
13. rac查询服务器主机名:
select host_name from v$instance;查询服务器IP
select sys_context ('userenv','ip_address') from dual;创建或配置数据库:dbca
net manager 调用:netmgr
emca创建数据库
手动创建数据库:emca -config dbcontrol db -repos create1\database:
查看控制文件:
select * from v$controlfile;查看数据文件:
select * from dba_data_files;
数据文件不包括临时文件日志文件:
select * from v$log;
select * from v$logfile
切换日志文件:
alter system switch logfile;参数文件:
(server parameter file)spfile
show parameter spfile口令文件:password file
select * from v$pwfile_users
重要2\instance:
oracle 五大进程:
select * from v$process
1.pmon( process monitor)
2.smon(system monitor)
3.dbwr(database write)
4.lgwr(log write)
5.ckpt(checkpoint)oracle 启动的几个状态:
正常启动顺序:
启动实例:instance ,读取系统参数文件
读取控制文件
打开数据库
nomount -- mount-- openstartup open
startup force (强制重启,模仿停电试验)shutdown == shutdown normal
shutdown immediate
shutdown abort(停电类似)==startup force
shutdown transactional创建表空间:
关于sys用户参数:
show parameter O7
里面有一个属性为false 如果更改为true就可以不需要as sysdba 连接。os认证:
关于登录的"/ ",操作系统认证,省缺状态下只可以在数据服服务器生效。1、windows屏蔽操作系统认证:去掉ora_dba组里的相对应用户
即可。
2、更改E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora下的文件关于服务命名与监听:
show parameter service_nameC:\>tnsping orcl 解释服务命名
更改数据文件大小:
SQL> alter database datafile 9 resize 100m;
ntfs 最大的数据文件大小为32GB更改数据文件大小自动扩展:
SQL>alter database datafile 9 autoextend on next 5m;每次增加5m表空间可以有多个数据文件:
SQL> alter tablespace ming_tbs add datafile 'E:\ORACLE\ORADATA\MING_TBS2.DBF' si
ze 2048m;表空间脱机:
alter tablespace test2 offline;
alter tablespace test2 onine;
表空间只读:
alter tablespace test2 read only
更改为online
alter tablespace ming_tbs read write删除表空间:
drop tablespace test;
删除表空间的同时删除表的内容与数据文件
drop tablespace test including contents and datafile;表空间重命名:
alter tablespace test2 rename to test;
表重命名:
rename table1 to table_1;清空回收站:purge recyclebin;
查看数据库用户:
select * from dba_users;
修改数据库默认表空间,表间是由数据段组成
alter database default tablespace test;
alter user test default tabledpace test;
一个用户能使用多少表空间不是通过权限控制quota
quota unlimited
临时表空间如临时文件,虚拟内存,linux下的交换表空间
创建临时表空间:
create temporary tablespace temp1 tempfile 'e:\oracle\tem_f.dbf' size 10m
创建用户同时指定其临时表空间:
create user test identified by test default tablespace test temporary tablespace temp1 quota 10m on test;
删除表空间指定的数据文件:
alter tablespace test drop datafile 5;用户:
创建用户时指定下次登录时需改修密码:
cteate user test identified by test5 default tablespace test temporary tablespace temp1 password expire(过期);
锁定用户:
create user test identified by test5 default tablespace test temporary tablespace temp1 account lock;
创建外部验证用户:
create user "pgm/pgm-pc" identified externally;(操作系统用户验证)用户一定要用双引号,且要大写。权限(privilege):
1、系统权限system
SQL>select * from system_privilege_map (系统权限表)
SQL>select * from dba_sys_privs where grantee='test' 查看一个用户拥有的系统权限(重要,常用)
SQL>grant create any table to test;授予可以在其它表空间创建表,注意此权限较大,如test用户可以创建test1用户的表。
create any table
unlimited tablespace
drop any table2、对象权限 object
SQL>select * from dba_tab_privs where grantee ='test' ;查看用户拥有的对象(表)权限 (重要,常用)
授予用户对表t的相关权限:
SQL>grant select ,insert,updata,delete on t to test;
SQL>grant all on test1 to test ;把关于test1所有的对象权限授予给test用户。
SQL>grant all on test1 to test grant option (实现权限传递)
收回权限revoke:
SQL>revoke all on test1 from testoracle 默认是不能权限传递
角色(role):
SQL>select * from dba_roles;
SQL>create role role_test;创建角色
SQL>grant create table,create session,create view to role_test;授予角色上述权限
查看某个角色拥有哪些权限:
SQL>select * from dba_role_privis where grantee='orle_test'
授予用户某个角色:
SQL>grant role_test to test;控制用户资源使用:
profiles 默认:用户密码输错10次被锁定
创建用户时指定默认profiles
SQL>create user test identified by test profile default;
修改用户profile
SQL>alter user test3 profile profile_test;
指定profiles 时需要注意设置以下参数为true时才可生效:
show parameter limit
SQL>alter system set resource_limit=true;例外:set time on
set time off关于SCHEMA.
SQL>grant SELECT_GATALOG_ROLE to test1;
授予查看视图等 权限查看某个用户所拥有的表:
select * from dba_tables where owner = 'MING'修改表的列的属性:
SQL>alter table tt modify emp varchar2(10);
增加列:
SQL>alter table tt add d int;增加表约束:
alter table emp add constraint pk1 primary key (id);
主键约束与唯一约束区别:一个可以为空,一个不可以为空创建check约束(男代表1,女代表0):
SQL>alter table emp add constraint chk_t check (sex in ('0','1'));
创建check约束,sal在1500与100000之间数值。
SQL> alter table tt add constraint chk_tt check (sal >= 1500 and sal <=100000);添加非空约束:
alter table tt add constraint not_null check (id is not null);not null 为列级约束,
主键,外键,唯一,检查约束都为表级约束。查看某个用户的约束;
select * from dba_constraints where owner = 'MING'视图(view):
查看某个用户下拥有的视图:
select * from dba_views where owner = 'MING'复杂视图与简单视图(可在视图里插入数据操作)
创建一个复杂视图:
create view or replace v$empd as
select t1.empno,t1.ename,t2.dname,t1.job,t1.hiredate,t1.sal from emp t1 join dept t2 on (t1.deptno=t2.deptno)
创建视图同时指定为只读:
create view v$v1 as
select * from emp with read only索引(index)
1、b-tree (balance)平衡树
2、bitmap
查看某用户下的索引:
select * from dba_indexes where owner = 'SCOTT'研究oracle时用的更改 session命令:
SQL>alter session set events 'immediate trace name treedump level 12190(对象编号)'drop table tt purge;删除一个表不放到回收站里
plsql:
glogin.sql 初始化文件添加以下:
set serveroutput onprocedure
第四天 录像16\17先跳过,找一些关于PL/SQL相关资料再补一下, 42分
关于帐户安全性:
授予表为公共表:
grant all on emp to public;
撤销操作:
revoke all on emp from public;revoke execute on utl_file from public; 收回执行权限
关于审计:
show parameter audit 查看上述参数,windows与linux不同
启用审计,修改下述参数:
alter system set audit_trail=db_extended scope=spfile;1、权限审计
创建审计:
audit create session 所有用户都审计
audit create session by ming 只审计ming用户
删除审计:
noaudit create session查看审计权限视图:
select * from dba_priv_audit_opts;
审计日志视图:
select * from dba_audit_trail2、对象审计:
audit select on ming.emp;
audit select on ming.emp by session;默认 针对同一个session
audit select on ming.emp by access whenever successfull3、语句审计
audit table by ming审计用户ming关于表的操作
查看表的审计日志:
select * from dba_obj_audit_opts;4、oracle提供的审计包:
audit all by emp;
查看日志:
select * from dba_stmt_audit_opts;audit all on default; 审计所有,只对创建其之后的对象生效
查看日志:
select * from all_def_audit_opts;5、例外:
创建一个审计策略:
execute
dbms_fga.add_policy(
object_schema=>'ming',
object_name=>'emp',
policy_name=>'audit_emp',
audit_condition=>'empno=7900',
audit_column=>'ename',
handler_schema=>'secure',
enable=>true,
statement_types=>'select'
);关于服务命名:
配置时主要看lsnrctl里面的状态:ready 的肯定是能连接,unknow未必能连接。查看数据库是共享还是专用模式:
show parameter shared
如果shared_servers为大于0说明支持共享模式
数据库默认连接类型选择共享模式,如果共享与专用共存时。研究进程时用的查看sid
selelct sid from v$mystat where rownum=1;select server from v$session where sid ='??';
关于无效对象处理:
查看无效对象:
select * from dba_objects where status='INVALID'HWM:(high water mark) 高水位
分析sql语句执行:
SQL>set autotrace traceonly
SQL>analyze table t1 compute statistics ;分析表修改索引:
alter index idx_t rebuild;重建索引
alter index idx_t rebuild online; 在线重建索引,不影响insert updata delete 执行。sql>exec dbms_stats.gather_table_stats('sys','T1');
关于上述包dbms_stats 收集统计信息undo表空间
创建undo表空间
create undo tablespace undo002 datafile ' e:\oracle\datafile\undo002.dbf' size 100m autoextend off next 20m;
查看实例使用哪一个undo表空间:
SQL>show parameter undo
查看undo段:
select * from dba_rollback_segs;
select * from v$undostat
每十分钟纪录一个
select * from v$sql;block 阻塞
SQL> show parameter db_block关于锁:lock
select * from v$lock
select * from v$locked_object 锁的对象TX:ROW 模式为:6 排他的 行级锁
TM:TABLE 3 表级锁共5种:RS、 RX、 S、 SRX、 X
SQL>lock table t in exclusive mode ; x锁模式,死锁
注:请不要手动随便加锁,数据库会自动所需加锁deadlock:
指的是应用程序里的死循环等收集统计信息:
select * from dba_scheduler_jobs 每晚十点系统的一个GATHER_STATS_JOB 任务
select * from dba_scheduler_window_groups查看等待session :
select * from V$session_Wait
select * from v$session_wait_history order by wait_time desc关于监控::
ash:active session history 记录session纪录,每秒纪录一次,插入一次纪录。em里面的ash报告
select * from v$active_session_history;
命令下创建ash报告:
SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\ashrpt.sqlawr:auto workload repository
awr的表属于sys用户下,存储在SYSAUX表空间下面
每一小时收集一次信息,保留7天,以下表可以查看:
select * from dba_hist_wr_control
修改其设置(但一般不建议修改):
SQL>exec dbms_workload_repository.modify_snapshot_settings(retention=>1440,interval=>30);命令下创建awr报告:
SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\awrrpt.sqaddm: auto database dia
数据自动诊断建议
命令下创建addm报告:
SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\addmrpt.sq查看表的大小:
SQL>select bytes/1024/1024 m from dba_segments where segment_name='T1';
创建表在指定的表空间中:
SQL>create table t1 tablespace test as select * from dba_objects;
SQL>insert into t1 select * from t1;关于度量metric:
select * from dba_outstanding_alerts
查看度量警告启用管理顾问参数:
SQL> show parameter statistics
statistics_level string TYPICAL 当为typical时启用
查看下述建议视图:
select * from v$statistics_level关于备份:
1、完全脱机备份
2、部分脱机备份(只针对表空间操作)
3、联机部分备份 (可以备份system表空间)
4、rman备份(联机完全备份)
5、逻辑备份(exp/imp expdp/impdp)sql>show parameter db_reco;(db_recover)
查看归档备份日志的参数路径信息,包括其大小:默认为2g
db_recovery_file_dest_size 关于经常出现归档日志超过2G大小问题scn : system change number
select dbms_flashback.get_system_change_number from dual;select file#,checkpoint_change# from v$datafile;
select file#,checkpoint_change# from v$datafile_header;
两个作对比查看检查点是否一致,如不是文件需恢复。更改某个表空间为热备份:
alter tablespace users begin backup; (更改后可以联机拷文件)
alter database begin backup; 更改所有表空间为热备
查看:
select * from v$backup; 主要纪录起始检查点拷文件完后:
alter tablespace users end backup;注:上述联机热备产生的日志比其它备份模式较大
如果出现控制文件需恢复,把旧的控制文件拷来使用需添加以下命令:
sql>recover database using backup controlfile;(申明控制文件不是最新 的)
sql>recover database using backup controlfile until cancel;sql>alter database open resetlogs; 把 scn折断,当scn有损失时使用,即当联机日志存在时使用。否则用noresetlog
关于日志文件的备份恢复
添加一组日志文件:
SQL> alter database add logfile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO04.LOG' size 50m;
(默认)最多只可以有16组日志文件,最少需要2组。SQL> alter database drop logfile group 4; 一个group 可能会有多个member;
当日志文件损坏后,可以新建一组后使用以上命令删除原来的给日志文件加一个镜像:
SQL> alter database add logfile member 'E:\oracle\product\10.2.0\oradata\orcl\log\redo03.log' to group 3;
当前联机的不能删除
删除其中一个member:
SQL> alter database drop logfile member 'E:\oracle\product\10.2.0\oradata\orcl\redo01.log' ;关于RMAN备份:
RMAN>backup archivelog all; 备份归档日志
检查归档日志:
rman>crosscheck archivelog all;
删除过期没用的归档日志:
rman>delete expired archivelog all;RMAN>backup as compressed backupset full database ;
完全备份,压缩备份集
RMAN>restore database from TAG=TAG201099342432;
使用指定备份集来恢复
SQL>grant connect,resource,recovery_catalog_owner to rman;
授予上述角色给新建用户RMANRMAN>delete noprompt backup;
删除备份,磁盘上的文件同时删除。关于增量备份:
RMAN>backup as compressed backupset incremental level=0 database;
0级备份(完全备份)
RMAN>backup as compressed backupset incremental level=2 database;
2级备份,差异备份
RMAN>backup as compressed backupset incremental level=1 database;
1级备份,再把前面的2级备份覆盖备份一次,同级别的备份不覆盖RMAN>list backup of database summary;
显示详细的备份信息累积备份,关键字:cumulative,同一级别备份将覆盖:
RMAN>backup as compressed backupset incremental level=1 cumulative database;创建脚本:
rman>create script sc1{
delete noprompt backup;
backup as compressed backupset full database;
backup archivelog all;
}
查看脚本,本地脚本:
rman>list script name
执行脚本:
rman不支持直接执行脚本,需放在run里面:
新建一个sql,把以下内容输入:
run{execute script sc1};当出现有数据块损坏时:
rman>backup validate database ;
检验备份,不生成备份文件,与下述命令一样作用:
c:\>dbv file ='e:\oracle\oradata\test.dbf'sql>select * from v$database_block_corruption
检验完成后,查看有那一些坏块块恢复操作(只有rman才可以):
rman>blockrecover datafile 5 block 275;
恢复刚才查询到那一个数据文件的那一个块关于flashback database闪回(不完全恢复)
1.检查是否开启flashback:
sql>select flashback_on from v$database;
2.如没有开启需在mount状态下执行:
sql>alter database flashback on;闪回表需在mount 状态下执行:
SQL> flashback database to timestamp to_timestamp('2012/06/18 22:04:58','yy/mm/dd hh24:mi:ss');
闪回完成后需使用resetlog 打开数据库关于flashback drop;主要针对表删除后闪回
flashback drop 不能闪回system表空间里面的对象
sql>flashback table t to before drop;sql>show parameter recyclebin ;默认上述参数开启才可以支持闪回表
查看回收站:
sql>select * from dba_recyclebin;sql>flashback table t to before drop rename to t1;
如果遇到重名时使用rename
sql>purge table t ; 清除回收站里的表t
sql>purge tablespace users ;清除回收站里的user表空间
sql>purge recyclebin;清空回收站闪回到某一个scn:
sql>select * from t as of scn 84391414;
sql>flashback table t to scn 34242342;
注:sys用户不支持闪回。例外:
新建一个数据文件:
SQL> alter database create datafile 'C:\oracle\product\10.2.0\oradata\orcl\tbs_test.dbf';第八天录像1:
http://tomszrp.itpub.net/post/11835/487501
关于asm
1、asmtool管理工具
2、创建asm储存:
C:\>asmtool -create E:\asm\disk1 1024
增加以下服务css:
C:\>e:E:\>cd E:\oracle\product\10.2.0\db_1\BIN
E:\oracle\product\10.2.0\db_1\BIN>localconfig.bat add
第八天录像3-5 跳过
使用oracle 全球支持特性:
select * from v$nls_valid_values
查看支持语言视图windows注册表里:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ORADB10GDB\NLS_LANG:
语言,版块,字符集,排序
LANGUAGE_TERRITORY_CHARACTERSET SORT
alter session set nls_sort ='对应的sort值'
alter session set nls_language='对应的language值'
alter ssession set nls_date_format='yyyy/mm/dd hh:mi:ss'; 更改日期格式
注:上述只对当前窗口生效修改日期格式:
alter system set nls_format='yyyy/mm/dd hh24:mi:ss' scope=spfile;
优先级最低,默认以版块来作日期格式,再到上述参数,如果注册表添加以下,则以下述格式优先
在注册表编辑
添加以下键值:nls_date_format yyyy-mm-dd hh24:mi:ss在监听里增加安装机制:
change_password :
启用上述密码后,oracle10g是不起作用的,默认可以通过os认证,
要去除os认证,那么需要在listener.ora文件中添加:
LOCAL_OS_AUTHENTICATION_[listener name] = OFF
重启监听后生效配置远程监听:
在tnsnames.ora增加以下:
LISTENER_R =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.24)(PORT = 1521))
再设置以下相关参数,主要使用在rac环境中的负载均衡:
sql>show parameter remote;
sql>alter system set remote_listener=listener_r;需指定相关参数停止远程数据库监听(在上述配置的数据操作):
LSNRCTL> stop listener_r关于em修复:
c:\>emctl status dbconsole
c:\>emctl start dbconsoleem重建:emca -config dbcontrol db -repos recreate
第九天 录像6 :
关于使用em建立自动作业:
打开em---管理----数据库调度程序----作业通过上述创建相关作业实现自动运行;
注意:windows里:OracleJobSchedulerORCL 服务必须启动第十天 录像 3
关于exp/imp 使用:
注:sys用户下不支持导出!!
如以sysdba用户导出需加单引号,如:
C:\>exp 'sys/tiger@orcl as sysdba' file =c:\temp\a.dmp log =c:\temp\a.log owner=scott指定scn导出
C:\>exp 'sys/tiger@orcl as sysdba' file =c:\temp\a.dmp log =c:\temp\a.log owner=scott flashback_scn=984312984当遇到磁盘空间问题时挂起操作处理,不作中断处理
RESUMABLE 遇到与空间相关的错误时挂起 (N)
C:\>exp system/tiger@orcl file =c:\temp\a.dmp log =c:\temp\a.log owner=scott resumable=yora-04031错误,常见错误,为sga错误为主!
例外:非归档模式下当数据文件损坏,没有作任何备份,尝试以下方式打开数据库:offline drop 表示永久删除,而归档模式下可以使用offline
sql>alter database datafile 5 offline drop;传输表空间的使用:
C:\>exp 'sys/tiger@orcl as sysdba' file =c:\temp\a.dmp log =c:\temp\a.log tablespaces=test transport_tablespace=y
导入时反转过来 ,但需指定相关数据文件。http://jzhil2004.blog.163.com/blog/static/27558504201010553843243/?fromdm&fromSearch&isFromSearchEngine=yes
2012年7月 记
本文转自pimg200551CTO博客,原文链接:http://blog.51cto.com/pimg2005/1182724 ,如需转载请自行联系原作者
OCP笔记部分整理-学习参考相关推荐
- 一份详细的“入坑Phd指南”---教你如何做笔记、整理参考书目、管理时间、如何写作、对自己和导师合理预期...
点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要5分钟 pick小博主,每天进步一丢丢 [导读]今天给大家强烈推荐一份详细的读博指南,本指南教你如何做笔记.整理参考书目.管理时间.如何写作.对 ...
- 单链表操作2-单链表A拆分成奇数和偶数值单链表B和C(个人学习笔记,仅供参考)
单链表A拆分成奇数和偶数值单链表B和C 题目要求 单链表结点定义 函数接口定义 测试程序样例 输入样例 输出样例 答案 题目要求 在一个带头结点的单链表A中,头指针为a,设计算法SplitList ( ...
- 单链表操作10-带头结点的单链表逆置(个人学习笔记,仅供参考)
带头结点的单链表逆置 题目要求 单链表结点定义 函数接口定义 测试程序样例 输入样例 输出样例 答案 题目要求 设计算法Reverse( ),将带头结点的单链表A逆置,要求利用原有链表的链点,最后输出 ...
- 李宏毅深度学习笔记——呕心整理版
李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...
- 学java怎么做笔记?如何整理java笔记?java学习笔记
许多开始学Java编程的朋友,都是跟着视频学习的,知道要记笔记,但又不知如何下手.其实笔记主要的还是记框架以及自己能感觉到不懂得地方方便巩固加深印象,笔记不要记得密密麻麻的看着就让人感觉头疼,学习编程 ...
- ISLR读书笔记(1)统计学习简介
欢迎访问个人主页,目前访问量太低,百度搜不到的说...谢谢鼓励 读书笔记,并不打算翻译全文,打算将书中重要的知识点结合自己的理解将其分享,并在最后附上R语言相关函数应用,作为自己最近一段时间在机器学习 ...
- 如何在iPad上充分利用各种笔记软件进行学习或办公——marginnote、goodnotes和onenote的优缺点以及我的使用场景
本文目的是记录我个人对几款iPad上常用的笔记软件的使用场景分析,以及对这几款软件优缺点的分析,希望可以给大家在iPad上选择学习或办公软件带来参考和新的思路.本文会先分析我个人的使用需求,随后会逐一 ...
- 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环
目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...
- 给软件工程师的学习参考
正确地做事与做正确的事同样重要 给软件工程师的学习参考 <今日电子>版权所有,欢迎转载 "又是一年毕业时",看到一批批学子离开人生的象牙塔,走上各自的工作岗位:想想自己 ...
最新文章
- php学习,一个简单的Calendar(2) 一个简单的活动页面
- ASINetworkQueues(经典2)
- python requests 异步调用_带有Python请求的异步请求
- 成本中心组和标准层次有何区别
- 彻底弄懂dalvik字节码【三】
- 好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果
- 【NLP-NER】命名实体识别
- 总结阐述Cocos2d-X与Cocos2d-iphone区别
- 怎样改变java编码风格_如何说服同事修改些代码的风格(JAVA的)。。求指引
- 阿里巴巴的AI革命 | 4天云栖大会干货总结
- 【实物】端到端自动驾驶搭建教程(四)附完整资料
- python图片拼接算法实现_python实现单张图像拼接与批量图片拼接
- Navicat 添加唯一索引
- html控制word打印在一张页面,HTML文件到WORD文档双面打印三步曲
- 小窗终曲说策划(有空就看看吧,可能对设计想法有所帮助,不仅仅是游戏方面
- 解决大疆无人机飞了一段距离就停下来的问题(大疆限飞50米)
- nextdate函数白盒测试问题 软件测试_NextDate函数测试用例
- Armijo条件,Wolfe条件,Goldstein条件
- 人均劳动生产率的单位_国家统计局解读2016年工资数据:与劳动生产率基本同步增长...
- 第一次登上CSDN的博客