• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            第二部分、ORACLE構(gòu)架體系
            [Q]ORACLE的有那些數(shù)據(jù)類型
            [A]常見的數(shù)據(jù)類型有
            CHAR固定長度字符域,最大長度可達(dá)2000個字節(jié)
            NCHAR多字節(jié)字符集的固定長度字符域,長度隨字符集而定,最多為2000個字符或2000個字節(jié)
            VARCHAR2可變長度字符域,最大長度可達(dá)4000個字符
            NVARCHAR2多字節(jié)字符集的可變長度字符域,長度隨字符集而定,最多為4000個字符或4000個字節(jié)
            DATE用于存儲全部日期的固定長度(7個字節(jié))字符域,時間作為日期的一部分存儲其中。除非
            通過設(shè)置init.ora文件的NLS_DATE_FORMAT參數(shù)來取代日期格式,否則查詢時,日期以
            DD-MON-YY格式表示,如13-APR-99表示1999.4.13
            NUMBER可變長度數(shù)值列,允許值為0、正數(shù)和負(fù)數(shù)。NUMBER值通常以4個字節(jié)或更少的字節(jié)存儲,最多21字節(jié)
            LONG可變長度字符域,最大長度可到2GB
            RAW表示二進(jìn)制數(shù)據(jù)的可變長度字符域,最長為2000個字節(jié)
            LONGRAW表示二進(jìn)制數(shù)據(jù)的可變長度字符域,最長為2GB
            MLSLABEL只用于TrustedOracle,這個數(shù)據(jù)類型每行使用2至5個字節(jié)
            BLOB二進(jìn)制大對象,最大長度為4GB
            CLOB字符大對象,最大長度為4GB
            NCLOB多字節(jié)字符集的CLOB數(shù)據(jù)類型,最大長度為4GB
            BFILE外部二進(jìn)制文件,大小由操作系統(tǒng)決定
            ROWID表示RowID的二進(jìn)制數(shù)據(jù),Oracle8RowID的數(shù)值為10個字節(jié),在Oracle7中使用的限定
            RowID格式為6個字節(jié)
            UROWID用于數(shù)據(jù)尋址的二進(jìn)制數(shù)據(jù),最大長度為4000個字節(jié)
            [Q]Oracle有哪些常見關(guān)鍵字,不能被用于對象名
            [A]以8i版本為例,一般保留關(guān)鍵字不能用做對象名
            ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT BETWEEN BY CHAR CHECK CLUSTER COLUMN COMMENT COMPRESS CONNECT CREATE CURRENT DATE DECIMAL DEFAULT DELETE DESC DISTINCT DROP ELSE EXCLUSIVE EXISTS FILE FLOAT FOR FROM GRANT GROUP HAVING IDENTIFIED IMMEDIATE IN INCREMENT INDEX INITIAL INSERT INTEGER INTERSECT INTO IS LEVEL LIKE LOCK LONG MAXEXTENTS MINUS MLSLABEL MODE MODIFY NOAUDIT NOCOMPRESS NOT NOWAIT NULL NUMBER OF OFFLINE ON ONLINE OPTION OR ORDER PCTFREE PRIOR PRIVILEGES PUBLIC RAW RENAME RESOURCE REVOKE ROW ROWID ROWNUM ROWS SELECT SESSION SET SHARE SIZE SMALLINT START SUCCESSFUL SYNONYM SYSDATE TABLE THEN TO TRIGGER UID UNION UNIQUE UPDATE USER VALIDATE VALUES VARCHAR VARCHAR2 VIEW WHENEVER WHERE WITH
            詳細(xì)信息可以查看v$reserved_words視圖
            [Q]怎么查看數(shù)據(jù)庫版本
            [A]select * from v$version
            包含版本信息,核心版本信息,位數(shù)信息(32位或64位)等
            至于位數(shù)信息,在linux/unix平臺上,可以通過file查看,如
            file $ORACLE_HOME/bin/oracle
            [Q]怎么查看數(shù)據(jù)庫參數(shù)
            [A]show parameter 參數(shù)名
            如通過show parameter spfile可以查看9i是否使用spfile文件
            或者select * from v$parameter
            除了這部分參數(shù),Oracle還有大量隱含參數(shù),可以通過如下語句查看:
            SELECT NAME
            ,VALUE
            ,decode(isdefault, 'TRUE','Y','N') as "Default"
            ,decode(ISEM,'TRUE','Y','N') as SesMod
            ,decode(ISYM,'IMMEDIATE', 'I',
            'DEFERRED', 'D',
            'FALSE', 'N') as SysMod
            ,decode(IMOD,'MODIFIED','U',
            'SYS_MODIFIED','S','N') as Modified
            ,decode(IADJ,'TRUE','Y','N') as Adjusted
            ,description
            FROM ( --GV$SYSTEM_PARAMETER
            SELECT x.inst_id as instance
            ,x.indx+1
            ,ksppinm as NAME
            ,ksppity
            ,ksppstvl as VALUE
            ,ksppstdf as isdefault
            ,decode(bitand(ksppiflg/256,1),1,'TRUE','FALSE') as ISEM
            ,decode(bitand(ksppiflg/65536,3),
            1,'IMMEDIATE',2,'DEFERRED','FALSE') as ISYM
            ,decode(bitand(ksppstvf,7),1,'MODIFIED','FALSE') as IMOD
            ,decode(bitand(ksppstvf,2),2,'TRUE','FALSE') as IADJ
            ,ksppdesc as DESCRIPTION
            FROM x$ksppi x
            ,x$ksppsv y
            WHERE x.indx = y.indx
            AND substr(ksppinm,1,1) = '_'
            AND x.inst_id = USERENV('Instance')
            )
            ORDER BY NAME
            [Q]怎么樣查看數(shù)據(jù)庫字符集
            [A]數(shù)據(jù)庫服務(wù)器字符集select * from nls_database_parameters,其來源于props$,是表示數(shù)據(jù)庫的字符集。
            客戶端字符集環(huán)境select * from nls_instance_parameters,其來源于v$parameter,
            表示客戶端的字符集的設(shè)置,可能是參數(shù)文件,環(huán)境變量或者是注冊表
            會話字符集環(huán)境 select * from nls_session_parameters,其來源于v$nls_parameters,表示會話自己的設(shè)置,可能是會話的環(huán)境變量或者是alter session完成,如果會話沒有特殊的設(shè)置,將與nls_instance_parameters一致。
            客戶端的字符集要求與服務(wù)器一致,才能正確顯示數(shù)據(jù)庫的非Ascii字符。如果多個設(shè)置存在的時候,alter session>環(huán)境變量>注冊表>參數(shù)文件
            字符集要求一致,但是語言設(shè)置卻可以不同,語言設(shè)置建議用英文。如字符集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
            [Q]怎么樣修改字符集
            [A]8i以上版本可以通過alter database來修改字符集,但也只限于子集到超集,不建議修改props$表,將可能導(dǎo)致嚴(yán)重錯誤。
            Startup nomount;
            Alter database mount exclusive;
            Alter system enable restricted session;
            Alter system set job_queue_process=0;
            Alter database open;
            Alter database character set zhs16gbk;
            [Q]怎樣建立基于函數(shù)索引
            [A]8i以上版本,確保
            Query_rewrite_enabled=true
            Query_rewrite_integrity=trusted
            Compatible=8.1.0以上
            Create index indexname on table (function(field));
            [Q]怎么樣移動表或表分區(qū)
            [A]移動表的語法
            Alter table tablename move
            [Tablespace new_name
            Storage(initial 50M next 50M
            pctincrease 0 pctfree 10 pctused 50 initrans 2) nologging]
            移動分區(qū)的語法
            alter table tablename move (partition partname)
            [update global indexes]
            之后之后必須重建索引
            Alter index indexname rebuild
            如果表有Lob段,那么正常的Alter不能移動Lob段到別的表空間,而僅僅是移動了表段,可以采用如下的方法移動Lob段
            alter table tablename move
            lob(lobsegname) store as (tablespace newts);
            [Q]怎么獲得當(dāng)前的SCN
            [A]9i以下版本
            select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;
            如果是9i以上版本,還可以通過以下語句獲取
            select dbms_flashback.get_system_change_number from dual;
            [Q]ROWID的結(jié)構(gòu)與組成
            [A]8以上版本的ROWID組成
            OOOOOOFFFBBBBBBRRR
            8以下ROWID組成(也叫受限Rowid)
            BBBBBBBB.RRRR.FFFF
            其中,O是對象ID,F(xiàn)是文件ID,B是塊ID,R是行ID
            如果我們查詢一個表的ROWID,根據(jù)其中塊的信息,可以知道該表確切占用了多少個塊,進(jìn)而知道占用了多少數(shù)據(jù)空間(此數(shù)據(jù)空間不等于表的分配空間)
            [Q]怎么樣獲取對象的DDL語句
            [A]第三方工具就不說了主要說一下9i以上版本的dbms_metadata
            1、獲得單個對象的DDL語句
            set heading off
            set echo off
            set feedback off
            set pages off
            set long 90000
            select dbms_metadata.get_ddl('TABLE','TABLENAME','SCAME') from dual;
            如果獲取整個用戶的腳本,可以用如下語句
            select dbms_metadata.get_ddl('TABLE',u.table_name) from user_tables u;
            當(dāng)然,如果是索引,則需要修改相關(guān)table到index
            [Q]如何創(chuàng)建約束的索引在別的表空間上
            [A]1、先創(chuàng)建索引,再創(chuàng)建約束
            2、利用如下語句創(chuàng)建
            create table test
            (c1 number constraint pk_c1_id primary key
            using index tablespace useridex,
            c2 varchar2(10)
            ) tablespace userdate;
            [Q]怎么知道那些表沒有建立主鍵
            [A]一般的情況下,表的主鍵是必要的,沒有主鍵的表可以說是不符合設(shè)計規(guī)范的。
            SELECT table_name
            FROM User_tables t
            WHERE NOT EXISTS
            (SELECT table_name
            FROM User_constraints c
            WHERE constraint_type = 'P'
            AND t.table_name=c.table_name)
            其它相關(guān)數(shù)據(jù)字典解釋
            user_tables 表
            user_tab_columns 表的列
            user_constraints 約束
            user_cons_columns 約束與列的關(guān)系
            user_indexes 索引
            user_ind_columns 索引與列的關(guān)系
            [Q]dbms_output提示緩沖區(qū)不夠,怎么增加
            [A]dbms_output.enable(20000);
            另外,如果dbms_output的信息不能顯示,
            需要設(shè)置
            set serveroutput on
            [Q]怎么樣修改表的列名
            [A]9i以上版本可以采用rname命令
            ALTER TABLE UserName.TabName
            RENAME COLUMN SourceColumn TO DestColumn
            9i以下版本可以采用create table …… as select * from SourceTable的方式。
            另外,8i以上可以支持刪除列了
            ALTER TABLE UserName.TabName
            SET UNUSED (ColumnName) CASCADE CONSTRAINTS
            ALTER TABLE UserName.TabName
            DROP (ColumnName) CASCADE CONSTRAINTS
            [Q]怎么樣給sqlplus安裝幫助
            [A]SQLPLUS的幫助必須手工安裝,shell腳本為$ORACLE_HOME/bin/helpins
            在安裝之前,必須先設(shè)置SYSTEM_PASS環(huán)境變量,如:
            $ setenv SYSTEM_PASS SYSTEM/MANAGER
            $ helpins
            如果不設(shè)置該環(huán)境變量,將在運(yùn)行腳本的時候提示輸入環(huán)境變量
            當(dāng)然,除了shell腳本,還可以利用sql腳本安裝,那就不用設(shè)置環(huán)境變量了,但是,我們必須以system登錄。
            $ sqlplus system/manager
            SQL> @?/sqlplus/admin/help/helpbld.sql helpus.sql
            安裝之后,你就可以象如下的方法使用幫助了
            SQL> help index
            [Q]怎么樣快速下載Oracle補(bǔ)丁
            [A]我們先獲得下載服務(wù)器地址,在http頁面上有
            ftp://updates.oracle.com
            然后用ftp登錄,用戶名與密碼是metalink的用戶名與密碼
            如我們知道了補(bǔ)丁號3095277 (9204的補(bǔ)丁集),則
            ftp> cd 3095277
            250 Changed directory OK.
            ftp> ls
            200 PORT command OK.
            150 Opening data connection for file listing.
            p3095277_9204_AIX64-5L.zip
            p3095277_9204_AIX64.zip
            ……
            p3095277_9204_WINNT.zip
            226 Listing complete. Data connection has been closed.
            ftp: 208 bytes received in 0.02Seconds 13.00Kbytes/sec.
            ftp>
            知道了這個信息,我們用用flashget,網(wǎng)絡(luò)螞蟻就可以下載了。
            添加如下連接
            ftp://updates.oracle.com/3095277/p3...04_AIX64-5L.zip
            或替換后面的部分為所需要的內(nèi)容
            注意,如果是flashget,網(wǎng)絡(luò)螞蟻請輸入認(rèn)證用戶名及密碼,就是你的metalink的用戶名與密碼!
            [Q]如何移動數(shù)據(jù)文件
            [A]1、關(guān)閉數(shù)據(jù)庫,利用os拷貝
            a.shutdown immediate關(guān)閉數(shù)據(jù)庫
            b.在os下拷貝數(shù)據(jù)文件到新的地點(diǎn)
            c.Startup mount 啟動到mount下
            d.Alter database rename datafile '老文件' to '新文件';
            e.Alter database open; 打開數(shù)據(jù)庫
            2、利用Rman聯(lián)機(jī)操作
            RMAN> sql "alter database datafile ''file name'' offline";
            RMAN> run {
            2> copy datafile 'old file location'
            3> to 'new file location';
            4> switch datafile ' old file location'
            5> to datafilecopy ' new file location';
            6> }
            RMAN> sql "alter database datafile ''file name'' online";
            說明:利用OS拷貝也可以聯(lián)機(jī)操作,不關(guān)閉數(shù)據(jù)庫,與rman的步驟一樣,利用rman與利用os拷貝的原理一樣,在rman中copy是拷貝數(shù)據(jù)文件,相當(dāng)于OS的cp,而switch則相當(dāng)于alter database rename,用來更新控制文件。
            [Q]如果管理聯(lián)機(jī)日志組與成員
            [A]以下是常見操作,如果在OPA/RAC下注意線程號
            增加一個日志文件組
            Alter database add logfile [group n] '文件全名' size 10M;
            在這個組上增加一個成員
            Alter database add logfile member '文件全名' to group n;
            在這個組上刪除一個日志成員
            Alter database drop logfile member '文件全名';
            刪除整個日志組
            Alter database drop logfile group n;
            [Q]怎么樣計算REDO BLOCK的大小
            [A]計算方法為(redo size + redo wastage) / redo blocks written + 16
            具體見如下例子
            SQL> select name ,value from v$sysstat where name like '%redo%';
            NAME VALUE
            ---------------------------------------------------------------- ----------
            redo synch writes 2
            redo synch time 0
            redo entries 76
            redo size 19412
            redo buffer allocation retries 0
            redo wastage 5884
            redo writer latching time 0
            redo writes 22
            redo blocks written 51
            redo write time 0
            redo log space requests 0
            redo log space wait time 0
            redo log switch interrupts 0
            redo ordering marks 0
            SQL> select (19412+5884)/51 + 16 '"Redo black(byte)" from dual;
            Redo black(byte)
            ------------------
            512
            [Q]控制文件包含哪些基本內(nèi)容
            [A]控制文件主要包含如下條目,可以通過dump控制文件內(nèi)容看到
            DATABASE ENTRY
            CHECKPOINT PROGRESS RECORDS
            REDO THREAD RECORDS
            LOG FILE RECORDS
            DATA FILE RECORDS
            TEMP FILE RECORDS
            TABLESPACE RECORDS
            LOG FILE HISTORY RECORDS
            OFFLINE RANGE RECORDS
            ARCHIVED LOG RECORDS
            BACKUP SET RECORDS
            BACKUP PIECE RECORDS
            BACKUP DATAFILE RECORDS
            BACKUP LOG RECORDS
            DATAFILE COPY RECORDS
            BACKUP DATAFILE CORRUPTION RECORDS
            DATAFILE COPY CORRUPTION RECORDS
            DELETION RECORDS
            PROXY COPY RECORDS
            INCARNATION RECORDS
            [Q]如果發(fā)現(xiàn)表中有壞塊,如何檢索其它未壞的數(shù)據(jù)
            [A]首先需要找到壞塊的ID(可以運(yùn)行dbverify實(shí)現(xiàn)),假設(shè)為,假定文件編碼為。運(yùn)行下面的查詢查找段名:
            SELECT segment_name,segment_type,extent_id,block_id, blocks
            from dba_extents t
            where
            file_id =
            AND between block_id and (block_id + blocks - 1)
            一旦找到壞段名稱,若段是一個表,則最好建立一個臨時表,存放好的數(shù)據(jù)。若段是索引,則刪除它,再重建。
            create table good_table
            as
            select from bad_table where rowid not in
            (select rowid
            from bad_table where substr(rowid,10,6) = )
            在這里要注意8以前的受限ROWID與現(xiàn)在ROWID的差別。
            還可以使用診斷事件10231
            SQL> ALTER SYSTEM SET EVENTS '10231 trace name context forever,level 10';
            創(chuàng)建一個臨時表good_table的表中除壞塊的數(shù)據(jù)都檢索出來
            SQL>CREATE TABLE good_table as select * from bad_table;
            最后關(guān)閉診斷事件
            SQL> ALTER SYSTEM SET EVENTS '10231 trace name context off ';
            關(guān)于ROWID的結(jié)構(gòu),還可以參考dbms_rowid.rowid_create函數(shù)。
            [Q]我創(chuàng)建了數(shù)據(jù)庫的所有用戶,我可以刪除這些用戶嗎
            [A]ORACLE數(shù)據(jù)庫創(chuàng)建的時候,創(chuàng)建了一系列默認(rèn)的用戶和表空間,以下是他們的列表
            ·SYS/CHANGE_ON_INSTALL or INTERNAL
            系統(tǒng)用戶,數(shù)據(jù)字典所有者,超級權(quán)限所有者(SYSDBA)
            創(chuàng)建腳本:?/rdbms/admin/sql.bsq and various cat*.sql
            建議創(chuàng)建后立即修改密碼
            此用戶不能被刪除
            ·SYSTEM/MANAGER
            數(shù)據(jù)庫默認(rèn)管理用戶,擁有DBA角色權(quán)限
            創(chuàng)建腳本:?/rdbms/admin/sql.bsq
            建議創(chuàng)建后立即修改密碼
            此用戶不能被刪除
            ·OUTLN/OUTLN
            優(yōu)化計劃的存儲大綱用戶
            創(chuàng)建腳本:?/rdbms/admin/sql.bsq
            建議創(chuàng)建后立即修改密碼
            此用戶不能被刪除
            ---------------------------------------------------
            ·SCOTT/TIGER, ADAMS/WOOD, JONES/STEEL, CLARK/CLOTH and BLAKE/PAPER.
            實(shí)驗(yàn)、測試用戶,含有例表EMP與DEPT
            創(chuàng)建腳本:?/rdbms/admin/utlsampl.sql
            可以修改密碼
            用戶可以被刪除,在產(chǎn)品環(huán)境建議刪除或鎖定
            ·HR/HR (Human Resources), OE/OE (Order Entry), SH/SH (Sales History).
            實(shí)驗(yàn)、測試用戶,含有例表EMPLOYEES與DEPARTMENTS
            創(chuàng)建腳本:?/demo/schema/mksample.sql
            可以修改密碼
            用戶可以被刪除,在產(chǎn)品環(huán)境建議刪除或鎖定
            ·DBSNMP/DBSNMP
            Oracle Intelligent agent
            創(chuàng)建腳本:?/rdbms/admin/catsnmp.sql, called from catalog.sql
            可以改變密碼--需要放置新密碼到snmp_rw.ora文件
            如果不需要Intelligent Agents,可以刪除
            ---------------------------------------------------
            以下用戶都是可選安裝用戶,如果不需要,就不需要安裝
            ·CTXSYS/CTXSYS
            Oracle interMedia (ConText Cartridge)管理用戶
            創(chuàng)建腳本:?/ctx/admin/dr0csys.sql
            ·TRACESVR/TRACE
            Oracle Trace server
            創(chuàng)建腳本:?/rdbms/admin/otrcsvr.sql
            ·ORDPLUGINS/ORDPLUGINS
            Object Relational Data (ORD) User used by Time Series, etc.
            創(chuàng)建腳本:?/ord/admin/ordinst.sql
            ·ORDSYS/ORDSYS
            Object Relational Data (ORD) User used by Time Series, etc
            創(chuàng)建腳本:?/ord/admin/ordinst.sql
            ·DSSYS/DSSYS
            Oracle Dynamic Services and Syndication Server
            創(chuàng)建腳本:?/ds/sql/dssys_init.sql
            ·MDSYS/MDSYS
            Oracle Spatial administrator user
            創(chuàng)建腳本:?/ord/admin/ordinst.sql
            ·AURORA$ORB$UNAUTHENTICATED/INVALID
            Used for users who do not authenticate in Aurora/ORB
            創(chuàng)建腳本:?/javavm/install/init_orb.sql called from ?/javavm/install/initjvm.sql
            ·PERFSTAT/PERFSTAT
            Oracle Statistics Package (STATSPACK) that supersedes UTLBSTAT/UTLESTAT
            創(chuàng)建腳本:?/rdbms/admin/statscre.sql


            Posted on 2006-09-29 17:24 艾凡赫 閱讀(977) 評論(8)  編輯 收藏 引用 所屬分類: ORACLE數(shù)據(jù)庫

            Feedback

            # re: ORACLE之常用FAQ V1.0 (2) 第二部分、ORACLE構(gòu)架體系  回復(fù)  更多評論   

            2010-06-18 00:47 by FAYEVance20
            Do you want to get <a href="http://www.prime-resume.com">resume company</a>, that conform the area of research you desire?. You can count on our resume writers, as you rely on yourself. Thanks because that is the useful fact

            # re: ORACLE之常用FAQ V1.0 (2) 第二部分、ORACLE構(gòu)架體系  回復(fù)  更多評論   

            2010-11-09 06:44 by our prices
            The best way to receive a good grade is to purchase the good custom essay review or topics just about this topic, or just get the information about prices choosing the custom essay writing firm.
            99精品伊人久久久大香线蕉| 国产午夜精品理论片久久| 亚洲中文久久精品无码ww16| 久久亚洲精品国产精品| 欧美精品一本久久男人的天堂| 免费精品久久久久久中文字幕| 久久亚洲国产成人精品性色| www亚洲欲色成人久久精品| 7777久久久国产精品消防器材| 曰曰摸天天摸人人看久久久| 欧美激情一区二区久久久| 四虎国产精品免费久久久| 国内精品久久久久久久久电影网| 亚洲国产精品久久久久网站| 久久www免费人成看片| 国内精品久久久久久久亚洲| 久久精品国产亚洲av高清漫画| 亚洲国产成人精品无码久久久久久综合 | 日本人妻丰满熟妇久久久久久| 久久精品九九亚洲精品| 无码精品久久一区二区三区| 久久精品国产一区二区三区日韩| 久久亚洲日韩看片无码| 久久一本综合| 国内精品免费久久影院| 久久综合中文字幕| 国产成人无码久久久精品一| 久久久亚洲AV波多野结衣| 亚州日韩精品专区久久久| 久久男人中文字幕资源站| 国内精品久久久久影院网站 | 伊人久久精品线影院| 亚洲午夜福利精品久久| 99精品久久久久久久婷婷| 久久国产免费观看精品| 精品久久久久久国产潘金莲| 狼狼综合久久久久综合网| 日本强好片久久久久久AAA| 亚洲中文字幕无码久久2020| 久久久久青草线蕉综合超碰| 亚洲欧洲日产国码无码久久99|