日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OCP笔记部分整理-学习参考

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 create

    1\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-- open

    startup? 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_name

    C:\>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 table?

    2、對象權限 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 test?

    oracle 默認是不能權限傳遞

    角色(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 on?

    procedure

    第四天 錄像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_trail

    2、對象審計:
    audit select on ming.emp;
    audit select on ming.emp by session;默認? 針對同一個session
    audit select on ming.emp by access whenever successfull

    3、語句審計?

    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.sql

    awr: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.sq

    addm: 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;
    授予上述角色給新建用戶RMAN

    RMAN>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 dbconsole

    em重建: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=y

    ora-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笔记部分整理-学习参考的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。