标签: Oracle

  • Oracle命令全集

    第一章:日誌管理
    第二章:表空間管理
    第三章:表
    第四章:索引
    第五章:約束
    第六章:LOAD數據
    第七章:reorganizing data
    第八章: managing password security and resources
    第九章:Managing users
    第十章:managing privileges
    第十一章: manager role
    第十二章: BACKUP and RECOVERY
    Oracle命令全集
    第一章:日誌管理
    1.forcing log switches
         sql> alter system switch logfile;
         2.forcing checkpoints
         sql> alter system checkpoint;
         3.adding online redo log groups
         sql> alter database add logfile [group 4]
         sql> (‘/disk3/log4a.rdo’,’/disk4/log4b.rdo’) size 1m;
         4.adding online redo log members
         sql> alter database add logfile member
         sql> ‘/disk3/log1b.rdo’ to group 1,
         sql> ‘/disk4/log2b.rdo’ to group 2;
         5.changes the name of the online redo logfile
         sql> alter database rename file ‘c:/oracle/oradata/oradb/redo01.log’
         sql> to ‘c:/oracle/oradata/redo01.log’;
         6.drop online redo log groups
         sql> alter database drop logfile group 3;
         7.drop online redo log members
         sql> alter database drop logfile member ‘c:/oracle/oradata/redo01.log’;
         8.clearing online redo log files
         sql> alter database clear [unarchived] logfile ‘c:/oracle/log2a.rdo’;
         9.using logminer analyzing redo logfiles
         a. in the init.ora specify utl_file_dir = ‘ ‘
         b. sql> execute dbms_logmnr_d.build(‘oradb.ora’,’c:oracleoradblog’);
         c. sql> execute dbms_logmnr_add_logfile(‘c:oracleoradataoradbredo01.log’,
         sql> dbms_logmnr.new);
         d. sql> execute dbms_logmnr.add_logfile(‘c:oracleoradataoradbredo02.log’,
         sql> dbms_logmnr.addfile);
         e. sql> execute dbms_logmnr.start_logmnr(dictfilename=>’c:oracleoradblogoradb.ora’);
         f. sql> select * from v$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameters
         sql> v$logmnr_logs);
         g. sql> execute dbms_logmnr.end_logmnr;
    第二章:表空間管理
         1.create tablespaces
         sql> create tablespace tablespace_name datafile ‘c:oracleoradatafile1.dbf’ size 100m,
         sql> ‘c:oracleoradatafile2.dbf’ size 100m minimum extent 550k [logging/nologging]
         sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)
         sql> [online/offline] [permanent/temporary] [extent_management_clause]
         2.locally managed tablespace
         sql> create tablespace user_data datafile ‘c:oracleoradatauser_data01.dbf’
         sql> size 500m extent management local uniform. size 10m;
         3.temporary tablespace
         sql> create temporary tablespace temp tempfile ‘c:oracleoradatatemp01.dbf’
         sql> size 500m extent management local uniform. size 10m;
         4.change the storage setting
         sql> alter tablespace app_data minimum extent 2m;
         sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);
         5.taking tablespace offline or online
         sql> alter tablespace app_data offline;
         sql> alter tablespace app_data online;
         6.read_only tablespace
         sql> alter tablespace app_data read only|write;
         7.droping tablespace
         sql> drop tablespace app_data including contents;
         8.enableing automatic extension of data files
         sql> alter tablespace app_data add datafile ‘c:oracleoradataapp_data01.dbf’size 200m
         sql> autoextend on next 10m maxsize 500m;
         9.change the size fo data files manually
         sql> alter database datafile ‘c:oracleoradataapp_data.dbf’resize 200m;
         10.Moving data files: alter tablespace
         sql> alter tablespace app_data rename datafile ‘c:oracleoradataapp_data.dbf’
         sql> to ‘c:oracleapp_data.dbf’;
         11.moving data files:alter database
         sql> alter database rename file ‘c:oracleoradataapp_data.dbf’
         sql> to ‘c:oracleapp_data.dbf’;
    第三章:表
         1.create a table
         sql> create table table_name (column datatype,column datatype]….)
         sql> tablespace tablespace_name [pctfree integer] [pctused integer]
         sql> [initrans integer] [maxtrans integer]
         sql> storage(initial 200k next 200k pctincrease 0 maxextents 50)
         sql> [logging|nologging] [cache|nocache]
         2.copy an existing table
         sql> create table table_name [logging|nologging] as subquery
         3.create temporary table
         sql> create global temporary table xay_temp as select * from xay;
         on commit preserve rows/on commit delete rows
         4.pctfree = (average row size – initial row size) *100 /average row size
         pctused = 100-pctfree- (average row size*100/available data space)
         5.change storage and block utilization parameter
         sql> alter table table_name pctfree=30 pctused=50 storage(next 500k
         sql> minextents 2 maxextents 100);
         6.manually allocating extents
         sql> alter table table_name allocate extent(size 500k datafile ‘c:/oracle/data.dbf’);
         7.move tablespace
         sql> alter table employee move tablespace users;
         8.deallocate of unused space
         sql> alter table table_name deallocate unused [keep integer]
         9.truncate a table
         sql> truncate table table_name;
         10.drop a table
         sql> drop table table_name [cascade constraints];
         11.drop a column
         sql> alter table table_name drop column comments cascade constraints checkpoint 1000;
         alter table table_name drop columns continue;
         12.mark a column as unused
         sql> alter table table_name set unused column comments cascade constraints;
         alter table table_name drop unused columns checkpoint 1000;
         alter table orders drop columns continue checkpoint 1000
         data_dictionary : dba_unused_col_tabs
    第四章:索引
         1.creating function-based indexes
         sql> create index summit.item_quantity on summit.item(quantity-quantity_shipped);
         2.create a B-tree index
         sql> create [unique] index index_name on table_name(column,.. asc/desc) tablespace
         sql> tablespace_name [pctfree integer] [initrans integer] [maxtrans integer]
         sql> [logging | nologging] [nosort] storage(initial 200k next 200k pctincrease 0
         sql> maxextents 50);
         3.pctfree(index)=(maximum number of rows-initial number of rows)*100/maximum number of rows
         4.creating reverse key indexes
         sql> create unique index xay_id on xay(a) reverse pctfree 30 storage(initial 200k
         sql> next 200k pctincrease 0 maxextents 50) tablespace indx;
         5.create bitmap index
         sql> create bitmap index xay_id on xay(a) pctfree 30 storage( initial 200k next 200k
         sql> pctincrease 0 maxextents 50) tablespace indx;
         6.change storage parameter of index
         sql> alter index xay_id storage (next 400k maxextents 100);
         7.allocating index space
         sql> alter index xay_id allocate extent(size 200k datafile ‘c:/oracle/index.dbf’);
         8.alter index xay_id deallocate unused;
    第五章:約束
         1.define constraints as immediate or deferred
         sql> alter session set constraint[s] = immediate/deferred/default;
         set constraint[s] constraint_name/all immediate/deferred;
         2. sql> drop table table_name cascade constraints
         sql> drop tablespace tablespace_name including contents cascade constraints
         3. define constraints while create a table
         sql> create table xay(id number(7) constraint xay_id primary key deferrable
         sql> using index storage(initial 100k next 100k) tablespace indx);
         primary key/unique/references table(column)/check
         4.enable constraints
         sql> alter table xay enable novalidate constraint xay_id;
         5.enable constraints
         sql> alter table xay enable validate constraint xay_id;
    第六章:LOAD數據
         1.loading data using direct_load insert
         sql> insert into emp nologging
         sql> select * from emp_old;
         2.parallel direct-load insert
         sql> alter session enable parallel dml;
         sql> insert into emp nologging
         sql> select * from emp_old;
         3.using sql*loader
         sql> sqlldr scott/tiger
         sql> control = ulcase6.ctl
         sql> log = ulcase6.log direct=true
    第七章:reorganizing data
         1.using expoty
         $exp scott/tiger tables(dept,emp) file=c:emp.dmp log=exp.log compress=n direct=y
         2.using import
         $imp scott/tiger tables(dept,emp) file=emp.dmp log=imp.log ignore=y
         3.transporting a tablespace
         sql>alter tablespace sales_ts read only;
         $exp sys/.. file=xay.dmp transport_tablespace=y tablespace=sales_ts
         triggers=n constraints=n
         $copy datafile
         $imp sys/.. file=xay.dmp transport_tablespace=y datafiles=(/disk1/sles01.dbf,/disk2
         /sles02.dbf)
         sql> alter tablespace sales_ts read write;
         4.checking transport set
         sql> DBMS_tts.transport_set_check(ts_list =>’sales_ts’ ..,incl_constraints=>true);
        在表transport_set_violations中查看
         sql> dbms_tts.isselfcontained為true是,表示自包含
    第八章: managing password security and resources
         1.controlling account lock and password
         sql> alter user juncky identified by oracle account unlock;
         2.user_provided password function
         sql> function_name(userid in varchar2(30),password in varchar2(30),
         old_password in varchar2(30)) return boolean
         3.create a profile : password setting
         sql> create profile grace_5 limit failed_login_attempts 3
         sql> password_lock_time unlimited password_life_time 30
         sql>password_reuse_time 30 password_verify_function verify_function
         sql> password_grace_time 5;
         4.altering a profile
         sql> alter profile default failed_login_attempts 3
         sql> password_life_time 60 password_grace_time 10;
         5.drop a profile
         sql> drop profile grace_5 [cascade];
         6.create a profile : resource limit
         sql> create profile developer_prof limit sessions_per_user 2
         sql> cpu_per_session 10000 idle_time 60 connect_time 480;
         7. view => resource_cost : alter resource cost
         dba_Users,dba_profiles
         8. enable resource limits
         sql> alter system set resource_limit=true;
    第九章:Managing users
         1.create a user: database authentication
         sql> create user juncky identified by oracle default tablespace users
         sql> temporary tablespace temp quota 10m on data password expire
         sql> [account lock|unlock] [profile profilename|default];
         2.change user quota on tablespace
         sql> alter user juncky quota 0 on users;
         3.drop a user
         sql> drop user juncky [cascade];
         4. monitor user
         view: dba_users , dba_ts_quotas
     
    第十章:managing privileges
         1.system privileges: view => system_privilege_map ,dba_sys_privs,session_privs
         2.grant system privilege
         sql> grant create session,create table to managers;
         sql> grant create session to scott with admin option;
         with admin option can grant or revoke privilege from any user or role;
         3.sysdba and sysoper privileges:
         sysoper: startup,shutdown,alter database open|mount,alter database backup controlfile,
         alter tablespace begin/end backup,recover database
         alter database archivelog,restricted session
         sysdba: sysoper privileges with admin option,create database,recover database until
         4.password file members: view:=> v$pwfile_users
         5.O7_dictionary_accessibility =true restriction access to view or tables in other schema
         6.revoke system privilege
         sql> revoke create table from karen;
         sql> revoke create session from scott;
         7.grant object privilege
         sql> grant execute on dbms_pipe to public;
         sql> grant update(first_name,salary) on employee to karen with grant option;
         8.display object privilege : view => dba_tab_privs, dba_col_privs
         9.revoke object privilege
         sql> revoke execute on dbms_pipe from scott [cascade constraints];
         10.audit record view :=> sys.aud$
         11. protecting the audit trail
         sql> audit delete on sys.aud$ by access;
         12.statement auditing
         sql> audit user;
         13.privilege auditing
         sql> audit select any table by summit by access;
         14.schema object auditing
         sql> audit lock on summit.employee by access whenever successful;
         15.view audit option : view=> all_def_audit_opts,dba_stmt_audit_opts,dba_priv_audit_opts,
    dba_obj_audit_opts
         16.view audit result: view=> dba_audit_trail,dba_audit_exists,dba_audit_object,
    dba_audit_session,dba_audit_statement
     
    第十一章: manager role
         1.create roles
         sql> create role sales_clerk;
         sql> create role hr_clerk identified by bonus;
         sql> create role hr_manager identified externally;
         2.modify role
         sql> alter role sales_clerk identified by commission;
         sql> alter role hr_clerk identified externally;
         sql> alter role hr_manager not identified;
         3.assigning roles
         sql> grant sales_clerk to scott;
         sql> grant hr_clerk to hr_manager;
         sql> grant hr_manager to scott with admin option;
         4.establish default role
         sql> alter user scott default role hr_clerk,sales_clerk;
         sql> alter user scott default role all;
         sql> alter user scott default role all except hr_clerk;
         sql> alter user scott default role none;
         5.enable and disable roles
         sql> set role hr_clerk;
         sql> set role sales_clerk identified by commission;
         sql> set role all except sales_clerk;
         sql> set role none;
         6.remove role from user
         sql> revoke sales_clerk from scott;
         sql> revoke hr_manager from public;
         7.remove role
         sql> drop role hr_manager;
         8.display role information
         view: =>dba_roles,dba_role_privs,role_role_privs,dba_sys_privs,
    role_sys_privs,role_tab_privs,session_roles
    第十二章: BACKUP and RECOVERY
         1. v$sga,v$instance,v$process,v$bgprocess,v$database,v$datafile,v$sgastat
         2. Rman need set dbwr_IO_slaves or backup_tape_IO_slaves and large_pool_size
         3. Monitoring Parallel Rollback
         > v$fast_start_servers , v$fast_start_transactions
         4.perform. a closed database backup (noarchivelog)
         > shutdown immediate
         > cp files /backup/
         > startup
         5.restore to a different location
         > connect system/manager as sysdba
         > startup mount
         > alter database rename file ‘/disk1/../user.dbf’to ‘/disk2/../user.dbf’;
         > alter database open;
         6.recover syntax
         –recover a mounted database
         >recover database;
         >recover datafile ‘/disk1/data/df2.dbf’;
         >alter database recover database;
         –recover an opened database
         >recover tablespace user_data;
         >recover datafile 2;
         >alter database recover datafile 2;
         7.how to apply redo log files automatically
         >set autorecovery on
         >recover automatic datafile 4;
         8.complete recovery:
         –method 1(mounted databae)
         >copy c:backupuser.dbf c:oradatauser.dbf
         >startup mount
         >recover datafile ‘c:oradatauser.dbf;
         >alter database open;
         –method 2(opened database,initially opened,not system or rollback datafile)
    >copy c:backupuser.dbf c:oradatauser.dbf (alter tablespace offline)
         >recover datafile ‘c:oradatauser.dbf’ or
         >recover tablespace user_data;
         >alter database datafile ‘c:oradatauser.dbf’ online or
         >alter tablespace user_data online;
         –method 3(opened database,initially closed not system or rollback datafile)
         >startup mount
         >alter database datafile ‘c:oradatauser.dbf’ offline;
         >alter database open
         >copy c:backupuser.dbf d:oradatauser.dbf
         >alter database rename file ‘c:oradatauser.dbf’to ‘d:oradatauser.dbf’
         >recover datafile ‘e:oradatauser.dbf’ or recover tablespace user_data;
         >alter tablespace user_data online;
         –method 4(loss of data file with no backup and have all archive log)
         >alter tablespace user_data offline immediate;
         >alter database create datafile ‘d:oradatauser.dbf’as ‘c:oradatauser.dbf”
         >recover tablespace user_data;
         >alter tablespace user_data online
         5.perform. an open database backup
         > alter tablespace user_data begin backup;
         > copy files /backup/
         > alter database datafile ‘/c:/../data.dbf’ end backup;
         > alter system switch logfile;
         6.backup a control file
         > alter database backup controlfile to ‘control1.bkp’;
         > alter database backup controlfile to trace;
         7.recovery (noarchivelog mode)
         > shutdown abort
         > cp files
         > startup
         8.recovery of file in backup mode
         >alter database datafile 2 end backup;
         9.clearing redo log file
         >alter database clear unarchived logfile group 1;
         >alter database clear unarchived logfile group 1 unrecoverable datafile;
         10.redo log recovery
         >alter database add logfile group 3 ‘c:oradataredo03.log’size 1000k;
         >alter database drop logfile group 1;
         >alter database open;
         or >cp c:oradataredo02.log’ c:oradataredo01.log
         >alter database clear logfile ‘c:oradatalog01.log’;
  • 數據庫初始化參數更改的注意事項

    一般只有在大型應用中或者數據據庫性能明顯下降時才需要修改這個初始化參數。所以從這個角度來講,初始化參數的調整算是Oracle數據庫中的一個高級應用。但是這也是一個Oracle數據庫管理員必須要掌握的內容。為了更高的調整數據庫的初始化參數,筆者認為管理員在了解各個初始化參數的用途以及調整規則之前,需要先了解一些初始化參數調整的一些共性的內容。具體來說,主要有以下幾個方面。
    一、需要了解哪些參數不用重新啟動即可生效。

    在Oracle數據庫中,根據生效的時間不同,可以把參數大致分為兩類。一類是必須重新啟動後才能夠修改或者生效的參數;另外一類就是修改後不用重新啟動即生效的參數。一般來說,數據庫管理員比較喜歡第二類參數,即修改後不需要重新啟動立即生效的參數。為什麼呢?因為數據庫服務器投入生產使用之後,不能夠隨意重新啟動。如果修改後需要重新啟動才能夠生效,或者需要重新啟動後才能夠修改參數,那麼在調整參數的過程中顯然需要中斷用戶的訪問,會增加停機時間。這對於數據庫部署來說,打擊會非常的大。因為從穩定性與可用性出發,數據庫管理員是以最小的停機時間為目標的。而此時人為的增加停機時間,顯然跟這個目標有衝突。所以,數據庫管理員就需要知道哪些參數是不用重新啟動就可以修改與生效的;而哪些參數則必須重新啟動才可以。這是數據庫管理員再調整參數之前首先需要知道的內容。一方面管理員可以根據這個特性,來評估停機的損失與調整參數可能帶來的收益。如果收益大於損失的話,那麼仍然有調整初始化參數的必要。二是來確定參數調整的時間。哪些不需要重新啟動,即調整參數不會導致停機的情況下,則參數的調整時間相對來說靈活一點,限制不多。但是如果需要調整重新啟動才能夠生效或者修改的參數,那麼就需要選擇一個合適的時機了。如需要選擇晚上12點以後的時間,這個時段往往使用數據庫的用戶並不是很多。當然這個時間每個起夜都可能不同。總之就是選擇一個使用數據庫用戶盡量少的時候。如此的話,才能夠在最大程度上降低數據庫停機造成的損失。

    那麼哪些參數不需用重新啟動就可以被修改呢?其實,數據庫管理員只需要查詢動態視圖,即可以知道哪些參數不用關閉或者重新啟動就可以更改。如在動態視同v$parameter中,存儲著初始化參數的值。一般來說,可以在查詢語句中加入條件issys_modifiable<>’FALSE’ or isses_modifiable<>’FALSE'(注意他們之間是or的關係,而不是and關係),最後查詢出來的參數就是不用關閉或者重新啟動數據庫就可以設置的初始化參數。同時這些參數也是可以利用ALTER SYSTEM與ALTER SESSION命令可以更改的部分初始化參數。也就是說,不用關閉或者重新啟動數據庫就可以修改的參數都可以使用上面兩個命令來進行重新設置。但是並不是說,利用這兩個命令都可以在不用重新啟動或者關閉數據庫的情況更改初始化參數。簡單的說,就是可以利用這兩個命令來更改的參數,有些需要重新啟動或者關閉數據庫,而有些則不用。

    二、根據20/80原則來確定需要更改的參數。

    Oracle數據庫中的初始化參數有上百個。無論出於什麼目的,去一一調整這些參數往往是不現實的。一個優秀的數據庫管理員,只需要掌握其中少數幾個參數的修改即可。往往掌握這幾個參數的修改方法、原則以注意事項,就可以完成大部分的數據庫維護任務。這就是20/80的規律在其作用。也就是說,只需要掌握20%的參數(其實還遠遠不到這個比例),就可以完成80%的任務(其實遠遠高於這個比例)。也就是說,10/90規則對這個Oracle初始化參數來說,可能更加的適用。總之筆者要說的就是,只需要掌握眾多初始化參數中的少數幾個即可。即使需要通過調整初始化參數來提高數據庫性能或者其他目的的,也就是在這幾個少數的初始化參數中。對於其他的參數,數據庫管理員只需要了解其用途,而不需要了解該如何調整這些參數。因為遇到的機率可以說基本沒有。

    那麼這些重要的參數到底有哪些呢?主要有以下幾個參數。最重要的一個參數就是DB_CACHE_SIZE。這是一個用來調整數據庫緩存大小的參數。在必要的時候,調整這個參數的大小,可以提高數據緩存的命中率,從而大幅度的提高數據庫的性能。第二個參數是DB_BLOCK_SIZE。這個參數主要是用來指定數據庫在建立時所默認的塊大小。如果塊設置的比較小,則有可能會發生行鏈化現象,從而降低數據庫的性能;也有可能增加數據庫的碎片,浪費表空間的存儲空間以及降低數據庫的查詢性能等等。所以根據需要有時候也要調整這個塊大小來改善數據庫的性能。第三個參數是SHARED_POOL_SIZE參數。這個參數主要是為那些數據字典緩存和共享SQL語句指定了在SGA裡所分配的內存。簡單的來說,合理配置這個參數,能夠同等的共享SQL語句。調整這個參數,也是一種優化數據庫性能的常用手段。第四個參數為SGA_MAX_SIZE參數,這個參數指定了SGA可以動態增長的最大內存。在SQLServer數據庫中也有類似的參數。一般來說,在同台數據庫服務器中若部署有多個應用服務的話,則往往需要合理配置這個參數來避免多個應用服務之間爭用內存。如果這個參數設置的不合適的話,則有時候會導致另外一種應用服務由於沒有足夠的內存而停止服務。第五個參數為LOG_CHECKPOINT_INTERVAL。這個參數主要用來設置檢查點的頻率。在每個檢查點中,數據庫系統執行數據寫出,將所有臟塊(已經修改還沒有保存到硬盤中的數據)寫入到數據庫中對應的數據文件中。默認情況下,如果在數據庫緩存中有1/4的數據緩衝區是臟緩衝區,則數據庫系統會自動執行檢查點。另外一個強制的原則就是在進行日誌切換時,也會執行檢查點。在一些特定的情況下,如建立數據倉庫,需要調整這個參數以滿足特定場合的需要。

    這五個參數是筆者這幾年工作以上遇到的最頻繁的初始化參數。基本上數據庫維護與性能調優就是圍繞著這幾個參數來的。為此筆者建議,各位數據庫管理員在學習數據庫初始化參數的調整技巧時,可以從這幾個參數出發。或者說,這幾個參數是數據庫管理員必須要掌握的。不只是簡單的了解,而是需要吃透它。只有如此,在遇到情況時,才可以判斷是否需要進行更改,以及應對在更改過程中可能出現的問題。對於其他的一些參數,筆者認為數據庫管理員只需要了解其基本用途即可。或許筆者在總結這些參數的時候,有漏掉的地方,歡迎大家來補充。以後若有機會,筆者也會像大家詳細介紹在什麼情況下該調整什麼參數;以及在調整過程中可能會遇到的麻煩。大家若對這方面的話題感興趣,可以關注筆者後面的文章。

    三、使用SPFILE來動態修改參數。

    在Oracle10G以後的版本中,還允許數據庫管理員使用一個SPFILE來存儲實例參數的動態修改。在10G以前的版本中,除非將參數手動的添加到初始參數文件中,否則動態的修改參數在數據庫重新啟動後都會丟失。這跟環境變量的設置有些類似。但是在10G以後的版本中,在這方面有了很大的改善。如開啟SPFILE機制的話,則係統就會啟用一個服務器參數文件,在內存中動態改變某些參數的時候,同時將這些改變記錄到這個服務器參數文件中。等到下次重新啟動時,服務器會讀取喜歡個服務器參數文件中的值,用來初始化數據庫系統。也就是說,從現在開始一些動態修改的參數也可以永久生效了。這對於數據庫管理員來說,無疑是一個福音。

    從以上的分析中可以看出,這個數據庫參數的調整還是一個比較複雜的工作。筆者認為,管理員在學習如何調整這個參數之前,需要先了解上面這些共性的內容。即參數修改的時間限制、最可能需要調整的參數以及如何讓動態參數永遠生效等等。這些是做好參數優化工作的基礎。

  • Oracle OCM認證資深專家考試方法和要求

    對參加OCM考試的人員的要求:

     
    主要有兩個要求。一、首先必須是OCP;二、參考人員應參加過Oracle原廠的至少兩門的OCM相關課程的培訓。
     
    OCM-參加OCM認證考試需要必備的知識:
     
    1、精通Oracle9i的SQL
     
    2、RedHat Advanced Server
     
    LINUX的一些操作知識,如格式並執行基本的操作系統的命令;創建並遍歷目錄;使用cp,mv及rm來拷貝、移動及刪除文件;linux環境下的文本編輯器的使用;設置環境變量。
     
    3、定位和執行Oracle一些應用程序的能力,
     
    它包括:RMAN應用程序;Oracle Net Manager;Oracle Net Configuration Assistant;OEM;Listener Utility;OMS;Oracle Password Utility;Database Creation Assistant(DBCA)。
     
    4、要熟練使用Oracle Enterprise Manager(OEM)
     
    5、熟練使用Oracle Net Manager和Oracle NetConfiguration Assistant來進行網絡配置。
     
    6、熟悉Oracle9i(v9.0.1.3)的高級知識
     
    7、熟悉使用瀏覽器(netscape)來查閱oracle的幫助文檔。
     
    8、熟練使用Konqueror 2.2 browser軟件
     
    實踐課考試環境:
     
    實踐課的考試在oracle統一專用的教室內進行。由一個oracle的教授來負責監考、佈置場景、收集考試的結果。考生將被隨意指定一個坐位來完成當天的實踐考試。考生不允許使用自帶私人的文檔和筆記,不許與其它的考生商量。移動電話,自帶紙張和PDA都不允許在考試教室內使用。每個考生都將提供一個安裝在redhat Advanced Server 2.1 LINUX環境上的Oracle的server軟件,一個完備的Oracle聯機文檔。

  • Oracle數據庫Decode函數的使用方法

    DECODE函數的作用:它可以將輸入數值與函數中的參數列表相比較,根據輸入值返回一個對應值。函數的參數列表是由若干數值及其對應結果值組成的若干序偶形式。當然,如果未能與任何一個實參序偶匹配成功,則函數也有默認的返回值。

    區別於SQL的其它函數,DECODE函數還能識別和操作空值。

    語法如下:

    DECODE(control_value,value1,result1[,value2,result2…][,default_result]);

    control _value

    試圖處理的數值。 DECODE函數將該數值與後面的一系列的偶序相比較,以決定返回值。

    value1

    是一組成序偶的數值。如果輸入數值與之匹配成功,則相應的結果將被返回。對應一個空的返回值,可以使用關鍵字NULL於之對應

    result1

    是一組成序偶的結果值。

    default_result未能與任何一個值匹配時,函數返回的默認值。

    示例如下:

    select decode( x , 1 , ‘x is 1 ‘, 2 , ‘x is 2 ‘, ‘others’) from dual

    當x等於1時,則返回‘x is 1’。

    當x等於2時,則返回‘x is 2’。

    否則,返回others’。

    在需要比較2個值的時候,我們可以配合SIGN()函數一起使用。

    SELECT DECODE( SIGN(5 -6), 1 ‘Is Positive’, -1, ‘Is Nagative’, ‘Is Zero’)

    同樣,也可以用CASE實現:

    SELECT CASE SIGN(5 – 6)

    WHEN 1 THEN ‘Is Positive’

    WHEN-1 THEN ‘Is Nagative’

    ELSE’Is Zero’ END

    FROM DUAL

    另外,大家還可以在Order by中使用Decode。

    例:表table_subject,有subject_name列。要求按照:語、數、外的順序進行排序。這時,就可以非常輕鬆的使用Decode完成要求了。

    select * from table_subject order by decode(subject_name, ‘語文’, 1, ‘數學’, 2, , ‘外語’,3)

  • Oracle收購SUN後,認證考試會不會有變化?

    純屬個人觀點:歡迎各位發表意見!

     

    最近一些考生諮詢MySQL、Java  認證考試會不會發生變化?Oracle合并SUN會不會推出新專業認證體系。網上很多關於Oracle收購SUN相關新聞很多,猜測Oracle今後發展方向…..

    大家別猜了,Oracle收購SUN對考試沒有太大影響,有可能會推出新認證體系(短期之內不會有任何變化)想考SCJP、OCP等證照的學員,放心去考吧!,Oracle、SUN曾經那些黃金證照不會貶值,即使以後出現新認證您只要參加一些考試就能輕鬆升級!

    Oracle收購SUN後是好是壞大家都是推測!以後的事留到以後再說吧!

  • Oracle收購SUN後,10大值得關注焦點

    [ZDNet李寧報導]Oracle收購SUN,已經在業界引起了軒然大波,下面我整理了認為值得關注的10個焦點。

    1 MySQL是死是活?

    MySQL作為SUN在業績不好的情況下,仍然揮霍10億美金購得的資產前途如何?有人分析,幹掉MySQL可以讓Oracle數據庫得到更多的市場機會。但Oracle數據庫主要走高端路線,MySQL是中小型市場的選擇。幹掉MySQL,就意味著Oracle要說服中小型用戶去選擇昂貴的Oracle數據庫產品,或者等於把潛在用戶趕到微軟SQL Server數據庫的懷抱。所以,讓MySQL和Oracle數據庫分別在低端和高端市場平衡前行才是一個不壞的選擇。

     

    2 Java社區發揚光大?

    Java作為SUN的計算機語言,10多年來已經成為軟件社區的一個品牌和開放的產業標準。 SUN在近些年什麽都可以改變,就是Java牢牢地攥著自己的手裡。 Oracle通過收購得到Java,絕對是一筆大大的財富。不僅因為Oracle的很多產品都是基於Java平台,更主要是因為Oracle可以挺直腰板和.net說不,可以根正苗紅的跟IBM說Java。所以,Oracle絕對有理由,也有資源繼續支持Java社區,但關鍵是Oracle是一家比SUN更加封閉的商業公司,在忙著賺錢的時候,Oracle還有多少心思做學問,去推動Java呢?

     

    3 Solaris煥發青春?

    開放的太晚了。這是普遍對SUN的Solaris策略的看法。 SUN一直固守Space+Solaris高端市場。直到被LAMP架構擠壓的市場空間不斷縮小,才開放了Solaris系統。 Oracle擁有了Solaris系統是一個有趣的話題。一定還記得當年Oracle苦於沒有操作系統而去撬redhat的客戶,推出個Oracle Linux版本的事情。所以,Oracle終於得到了在產品層面上不錯的操作系統。就看它怎麼玩?

     

    4對開源的影響?

    一直以來MySQL,Java都是在開源的標誌。 Oracle是一家封閉的商業公司,很多人擔心Oracle收購了SUN,某種程度上是宣布了軟件開源產業的一次失敗,甚至會造成軟件發展的倒退。不過,從另一個角度看,如果把開源或者說自由軟件上升到一個哲學角度,毫無疑問,充滿了商業味的Oracle收購學問氣十足的SUN,對軟件的開源是個影響。但是如果把開源看做一個商業模式的話,Oracle很早就樂於此道了。

     

    5 SUN硬件業務前途未卜?

    Oracle過去是個軟件廠商,而且它也正在和HP等硬件廠商進行著合作,現在Oracle通過收購也有了自己的硬件。 Oracle原有服務器市場的合作夥伴,一下子變成了競爭對手。有人大膽的預測,Oracle穩妥起見,將轉手賣掉SUN的硬件部分,這樣還可以減少本次收購的成本。但問題是,McNealy和Ellison似乎一直被稱為IT界的瘋子,賣掉了SUN的硬件似乎使這件事變的沒有那麼有意思了。

     

    6服務器市場新氣象?

    還記得08年,Oracle和SUN的蜜月期,用戶購買SUN指定的幾款服務器,Oracle的企業版數據庫軟件將成為一個選件。 SUN將為用戶支付Oracle的License費用,用戶只需要承擔一定的支持維護費用。現在Oracle和SUN終於“結婚”了,Oracle軟件+SUN的硬件服務器捆綁在一起的策略可以走的更大膽一些。現在,Oracle在服務器市場上的優勢是,操作系統(Solaris, Linux) +數據庫(Oracle, MySQL) +中間件(Oracle Application Server, BEA, Sun Appserver),雖然目前服務器市場份額SUN並不靠前,但是Oracle絕對可以給服務器市場帶來新氣象。

     

    7中間件市場靜悄悄?

    這次收購看起來並沒有從技術產品角度,對中間件產品市場進行新的劃分。但是一個值得注意的地方還是Java。 Java是業界標準,但Java是Oracle的了。而中間件市場大戶IBM同樣對Java非常依賴。

     

    8 IBM錯失SUN好事壞事?

    IBM與SUN談判的破裂,成就了Oracle-SUN,從產品線角度,Oracle-sun絕對使IBM面臨不小的壓力。但是IBM收購SUN也不一定就是好事,首先產品線重疊嚴重,芯片服務器市場:Sun是Sparc ,IBM是Power架構,操作系統SUN是Solaris,IBM是AIX UNIX,數據庫,SUN是MYSQL,IBM是DB2。其次,IBM近年來主要的收入已經從硬件轉向了軟件和服務,如果收購SUN無疑使IBM不斷下滑的硬件業務又多了一個麻煩的問題。所以,雖然IBM沒有收購SUN,不能說是一個壞事。

    9微軟是福是禍?

    有人認為Oracle-SUN的合作,將使很多硬件廠商比如HP轉而考慮與微軟走的更緊密些。也許吧,但從另一個角度看,一直以來,微軟靠Intel這個兄弟,在企業服務器端市場打拼。先前只有IBM這麼一個能提供軟硬件整套服務的傢伙搗下亂。現在Oracle也來了,從IT基礎架構+企業應用軟件。這勢必進一步擠壓Wintel的市場份額,失去了平台,微軟本就不強的企業服務器端應用軟件市更加不好活。目前看來微軟只能專心的搞它的IE8,windows7,和Office 2010了。

    10裁員
    不可避免,沒有什麼想像的空間。去年11月,Sun已經宣布裁員5000至6000人,佔員工總數的18%,Oracle-SUN的合併,必然會對SUN原有結構進一步調整。不過對於一個創新公司,削減技術人員將是不明智的,還是乾掉多餘的銷售和市場營銷人員吧。

  • 8位程序員對Oracle收購Sun的擔憂與期待

    出處:ITPub
    作者:不詳
    2009年4月20日晚消息,從美國傳來重大新聞,甲骨文公司以每股9.5美元的價格收購Sun,交易總值將超過70億美元,整個交易預計今年夏天完成。消息一出,四鄰皆驚,短短兩三個小時內就有幾百個網友尤其程序員通過博客發表評論,表達自己的期待與擔憂。我們精選了8位網友的博文,從另一個視角解讀這起併購案。

    網友Fenng:

           《日落西山- Oracle收購Sun》

    對IT產業來說,這是最好的時代,這是最壞的時代。 Sun要做Web 2.0中的這個Dot沒做成,74億美金把自己賣掉了。

    儘管我不是Sun的粉絲,還是感覺不太痛快。這次收購意味著又有若干產品有可能被打入冷宮。而大家比較關心的MySQL可謂命運不濟,被Sun折騰一年多,在開源社區裡面一點好沒討到,這回在Oracle新的產品線裡面如何定位呢? will be an addition to Oracle’s existing suite of database products…當然,InnoDB這回和MySQL算是破鏡重圓了。是否有其它變數,比如被原MySQL團隊贖身出來?難!

    對於Oracle來說,這次自己終於有了硬件(SPARC)和操作系統(Solaris)這兩塊王牌,其實Oracle和Sun算是多年的合作夥伴了(超過25年),相信整合起來可能問題不大。這次收購比較失敗的可能就是IBM了,Oracle這次給了競爭對手IBM以更大的壓力。難道藍色巨人出不起這個價格嗎?還是覺得足夠雞肋? Sun手裡的Java技術對於IBM的小型機是個很好的補充,想不通。再過幾年,這可能就是IBM犯過的最大錯誤。

    不痛快的除了IBM ,恐怕還有RedHat。不過別著急,沒準兒哪天Oracle也把RedHat也一併收了,我相信RedHat手裡的JBoss至少讓Oracle眼饞不已。有JBoss在,其他中間件就不可能賺到更多。

    一切皆有可能。其他事情不好確定,但有件事情還是能基本肯定,拉里·埃里森大叔這回又有機會體驗一下世界首富的滋味了…

    網友:PIRLO

    改變IT行業競爭格局的交易

    20日晚上下班回來終於有時間上會兒網,就從Oracle BI的qq群裡得到消息,Oracle重磅出手,74億美金收購Sun。一看到這則消息,就感覺到這將是極大改變IT行業競爭格局的交易。

    之前一直不看好IBM收購Sun,兩者業務重合度太高,Sun一旦被併入IBM的產品體系,必將是個小媳婦的角色,其自己的Solaris和mysql肯定會被慢慢自生自滅,Java的前景也不妙,總之IBM對Sun是不懷好意的。而Oracle的收購對Sun的前景則是大好的,首先Sun最優質的軟件資產—-Java和Solaris都是Oracle自己沒有的,尤其是Oracle一旦得到Java,其開放性的公司戰略將使Java有更大的發展空間,而Solaris將幫助Oracle的數據庫和應用軟件在高端客戶有更好的性能和市場。

    Oracle得到Sun,將一舉進入高端應用服務器的硬件市場,將會對IBM、HP、Dell帶來很大的衝擊,Oracle的數據庫+應用軟件+中間件+服務器的整體IT解決方案,將是目前其他任何一家軟件公司都做不到的,其整體解決方案的能力和價格優勢,將更徹底使IT行業得到一次洗牌。

    對於我個人來說,可能以後只做Oracle的產品線就足以養家糊口,並且有很大的發展空間的。 Oracle漫長的產品線,足以讓我自己有個準確的定位,和可持續發展,將來隨著我個人技術能力和業務能力的提高,都能用Oracle的產品來提供企業軟件應用的解決方案來。

    總之,這是一場雙贏的交易,傳奇色彩般的Sun將使Oracle更具領袖氣質,而Oracle迅速的公司發展和穩固的市場份額,將使Sun的優秀產品有更大的發展空間和競爭能力。我現在著急的是,Oracle應該盡快把Sun裁掉的員工重新招回來。

    網友:IntelliJIDEA

    Oracle收購了Sun的三個擔憂

    Oracle收購了Sun,應該是一件好事情,雙方均會有很大的受益:

    1 Oracle和Solaris本來就是黃金搭檔,如果合併,那將更好

    2 Oracle已經收購BEA啦,Oracle已經取得最好的App Server,在結合Sun的Java,那麼在Java應用服務方面將是最強的

    3在JCP方面,兩個大公司統一後,將推動JCP發展

    4 Oracle將獲取Sun的硬件研發,Oracle可能將向硬件發展

    5 Java中間件可能會發展更好,Sun雖然制定了很多規範,但是不會做生意,而Oracle是最好的商人,這樣的結合應該比較和諧

    作為Java程序員,個人也有些擔心:

    1 JRocket和JDK可能會合併,沒有必要搞兩個JVM?

    2 JDeveloper和NetBeans會如何發展,沒有必要搞兩個IDE吧?

    3 MySQL會朝什麼方向走?

    總的來說,Oracle收購Sun,這個結合比IBM和Sun的結合要好,還是看好Sun的今後發展,Java,我還是會堅持的。

    網友Hume2009-4-21

    SUN的落幕

    當論壇上有人說SUN被Oracle收購的時候,我感到非常震驚。曾經我也有過一段SUN的夢想,那還是非常幼稚的大二時期。在大二時期,我曾打算以SUN為最核心的開發平台開始自己的程序員生涯的,但後來還是漸漸的走進來Linux。到了畢業的時候卻走向了Windows。現在又準備開啟Linux計劃了。

    整體上講SUN是一個程序員的公司,其創始人說話非常口無遮掩,與蘋果、微軟、Oracle曾經被稱為四劍客。就是這家公司堅持走高端路線,漸漸走了下坡路。曾經擁有了CPU、服務器、操作系統等幾乎計算機工業文明的全線產品。

    Oracle創始人與SUN創始人有著不同的人生經歷。 SUN在創業之期就走得很好,而甲骨文在26歲的時候還在人生的最低谷,30多歲的時候才開始發家。因此我認為甲骨文將更有機會比SUN更穩健走路。從Oracle的收購史上來看,這是一家不管是吞蛇還是吞象,其財務總將對外界宣稱Oracle的消化能力一直保持得很好,因此這次也不會是一次意外。

    IBM收購SUN應該會給自己的業務帶來很大的麻煩。 Oracle收購將會是件很有意義的事件。 SUN公司目前的產品線包括:OS, JAVA, VBOX, MYSQL ,…。

    從情感上講,為什麼SUN會被收購?為什麼就不能走一條自己的路?

    網友yuwen

    Oracle沒有必要收購Sun

    沒想到IBM收購失敗後,Oracle居然也要收購Sun了,個人覺得Oracle沒有必要收購Sun。

    1、Sun的軟件除了Java基本是垃圾,估計Oracle能把Java搞得好點。

    2、MySQL是Oracle根本就瞧不起的數據庫產品,iPlant,一直就是個垃圾。

    3、oracle的重心基本是發展Linux,Solaris不是Oracle需要的操作系統,Sparc芯片現在已經遠遠落後於競爭對手了,Oracle不應該在這個上面花錢。

    4、收購Sun,Oracle勢必和HP要決裂了(HP Oracle Database Machine還能搞下去嗎?),30多年夥伴就要成為對手了。

    真的覺得沒有什麼好處,也許Oracle認為現在收購撿了個便宜,畢竟Sun的市值也到過2000億。

    難道狂人Larry Ellison,正的要通過收購Sun來和IBM進行全面的對抗。 Larry不要老糊塗了!

    網友savageboy

    Sun被Oracle收購有種不良的感覺

    今天加班回家上網看到兩條新聞。

    一條是九城和網易的魔獸世界代理權之爭,網易勝出,九城即將面臨失去80%左右的收入來源。

    另一條是,IBM不要Sun了,Sun最後被Oracle收購。

    對於魔獸世界的新聞,我覺得九城當初太張狂,把人家的牌子做爛掉了,活該。朱駿好歇息了。

    對於Sun,被Oracle收購我有種不良的感覺。平時做Java開發,接觸到的除了Sun就是IBM,Oracle的網站還沒去過。不過相對而言,被Oracle收購,Sun旗下的NetBeans和Swing可以倖存了。因為IBM的Eclipse和SWT是它們的最大競爭對手。

    九城和Sun有一個共同點,就是喜歡和別人競爭,搞得到處都是對手。

    九城有了魔獸,還去拍EA的馬屁,還去搶勁舞團。

    Sun的每個產品幾乎都和一家不同的大型IT企業直接競爭。

    有時候,還是收斂一下為妙。

    網友JAMBEAR

    背靠大樹小心雷劈

    在這場收購戰中,SUN最終選擇了一個對他更好的歸宿,IBM畢竟與他重合太多最少,她的賢良淑德,不會因為被收購而消滅,而有可能在未來的新家裡發揚光大;ORACLE獲得了一直短板的操作系統,JAVA也是有利的新兵器,而且得到了硬件平台的無條件支持;SUN希望能藉強大的應用軟件群落,重新獲得業界的認可,擺脫經營和財務的困局。

    最終作了SUN的花魁的人,不是武林一霸的IBM,而是內功深厚的ORACLE。如果說IBM是華山氣宗,講究內家修為、綜合實力;SUN是華山劍宗,講究招數變化,技術革新;這兩者最後的相遇,最大的可能就是一個消滅另一個,而這一個肯定是相對弱的那一個。從華山的實踐來看,雖然一開始劍宗弟子進鏡快,但後期還是氣宗弟子實力強。

    IBM是百年老店,經歷過戰爭和經濟危機,走過了好幾個經濟周期,知道怎么生存;SUN是後起之秀,劍術高明,但一直沒有解決經營環節的內功問題,一直有理想,執行力差一點;而ORACLE相對著倆而言,幾乎是另一個路子,最少,他手裡沒有劍(硬件),就靠一雙肉掌;基本就相當於喬峰這個級別,能打,江湖上也有地位,但是鬥劍客估計也要找把襯手的傢伙。

    當SUN遇到ORACLE,基本相當於被氣宗趕下山的劍宗高手,碰到了喬峰拉來助拳;喬大高手一上山,與劍宗高手一配合,那就相當強悍了,劍氣沉沉,降龍十八掌翻飛;就算氣宗高手數量(銷售額)上也是兩個,但是打起來,不見得能占到便宜;最起碼,這個內功+劍招的奇怪組合,也夠他們喝一壺的,比那落單的劍宗難對付多了。

    萬事都還在人,看起來新組合比較強,但是臨時拉郎配的組合始終不穩定因素還是多;誰知道今天聯手明天會不會翻臉,這年頭,結髮夫妻都有30%的離婚率,別說聯手了;萬一要是翻了臉,喬峰把人打了把劍搶了,或是劍宗的劍誤傷了喬大俠家裡的花花草草;後面的事也很難講是喜劇還是悲劇……

    今天晚上新聞報導了,oracle收購了sun公司,聽到這個消息,感覺有點失落,有種說不出的感覺,想當初是何等的風光,與微軟比肩的巨人,10年不到,卻看到了沒落,巨人倒下了。昔日的帝國夢也隨之逝去。想本人當初選擇了java的時候,就是被他這種氣勢所感染啊,現在還真的為java擔心呢,不知道換了新東家,java的明天是否會更好,現在只能靜觀其變。

    網友Marcian行成於思而毀於隨

    希望Java和MySQL不受影響

    Java的老祖宗被人收購了,希望我喜歡的Java不會受到影響,更希望MySQL不要受到影響。

    非常喜歡Java的優雅,只是現在的Java有點臃腫。

    最近正在和國外合作一個Java小項目,第一次嘗試跨國合作,好在對方也是中國人,希望這次合作能成為一個新的方向的起點。

    繼續努力,爭取哪天讓Oracle來收購我,哈哈,今天太累了,癡人說夢而已。

  • 升級Oracle 10g OCP 、11g OCP考試途徑

    Oracle升10g OCP

    1、9i OCP升10g OCP的認證考試只需考1z0-040一門;
        1z0-040 ( oracle database 10g:new features for adminsitrators )

    2、8i OCP升10g OCP的認證考試只需考1z0-045一門;
        1z0-045( oracle database 10g:new features for oracle8i ocps )

    升11g OCP

    1、10g OCP升11g OCP的認證需只考1z0-050一門;
        1z0-050 ( Oracle Database 11g: New Features for Administrators)

    2、9i OCP升11g OCP的認證考試只需考1z0-055一門;
        1z0-055( Oracle Database 11g: New Features for 9i OCPs)

     

    IT證照考古題  www.testpassportt.net