Oracle数据库开发的一些经验积累(三)

  • 来源: 互联网 作者: rocket   2008-03-19/10:13
  • 1、分析表
    analyze table mzbs.db_code ESTIMATE STATISTICS SAMPLE 20 PERCENT;

    2、表空间管理和用户管理

    --查看表空间和数据文件

    select file_name,tablespace_name,autoextensible from dba_data_files;

    --数据表空间

    CREATE TABLESPACE USER_DATA
    LOGGING
    DATAFILE 'D:\ORACLE\ORADATA\ORCL\test.DBF' SIZE 50m REUSE ,
    'c:\USERS01112.DBF' SIZE 50m REUSE
    AUTOEXTEND
    ON NEXT1280K MAXSIZE16383M EXTENT MANAGEMENT LOCAL

    --修改表空间数据文件的路径

    ALTER TABLESPACE app_data
    RENAME
    DATAFILE '/DISK4/app_data_01.dbf'
    TO '/DISK5/app_data_01.dbf';

    ALTER DATABASE
    RENAME FILE '/DISK1/system_01.dbf'
    TO '/DISK2/system_01.dbf';

    --临时表空间

    CREATE TEMPORARY
    TABLESPACEUSER_DATA_TEMP TEMPFILE 'D:\TEMP0111.DBF'
    SIZE 50M REUSE AUTOEXTEND
    ON NEXT1024K MAXSIZE16383M EXTENT MANAGEMENT LOCAL UNIFORM
    SIZE 1024K

    --增加数据文件

    ALTER TABLESPACEUSER_DATA
    ADD DATAFILE 'c:\USERS01113.DBF' SIZE 50M;

    ALTER TABLESPACE USER_DATA
    ADD DATAFILE 'c:\USERS01114.DBF'SIZE 50M
    AUTOEXTEND ON
    ;

    --删除表空间

    DROP TABLESPACE USER_DATA INCLUDING CONTENTS;

    --修改表空间的存储参数

    ALTER TABLESPACE tablespacename
    MINIMUM EXTENT 2M;

    ALTER TABLESPACE tablespacename
    DEFAULT STORAGE (
    INITIAL 2M
    NEXT 2M
    MAXEXTENTS 999 );

    --表空间联机/脱机/只读

    ALTER TABLESPACE tablespacename OFFLINE/ONLINE/READ ONLY;

    --修改数据文件大小
    ALTER DATABASE
    DATAFILE 'c:\USERS01113.DBF' RESIZE 40M;

    --创建用户、赋予权限

    CREATE USER USER_DATA PROFILE DEFAULT IDENTIFIED BYUSER_DATA
    DEFAULT
    TABLESPACE USER_DATATEMPORARY
    TABLESPACE USER_DATAACCOUNT UNLOCK;

    bbs.bitsCN.com

    GRANT CONNECT TO USER_DATA;
    GRANT RESOURCE TO USER_DATA;

    3、表的管理

    --创建表

    CREAE TABLE TABLENAME
    (COLUMN1 COLUTYPE DEFAULT(VALUE) NOT NULL)
    (COLUMN2 COLUTYPE DEFAULT(VALUE) NOT NULL);

    --建表的索引存储分配

    CREATE TABLE summit.employee(id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEXSTORAGE(INITIAL 100K NEXT 100K)
    TABLESPACE indx,
    last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL,
    dept_id NUMBER(7))
    TABLESPACE data;

    --修改表的存储分配

    ALTER TABLE tablename
    PCTFREE 30
    PCTUSED 50
    STORAGE(NEXT 500K
    MINEXTENTS 2
    MAXEXTENTS 100);

    ALTER TABLE tablename
    ALLOCATE EXTENT(SIZE 500K
    DATAFILE '/DISK3/DATA01.DBF');

    --把表移到另一个表空间

    ALTER TABLE TABLENAME MOVE TABLESPACE TABLESPACENAME;

    --回收空闲的空间(回收到High-water mark)
    BBS.bitsCN.com网管论坛


    全部回收需要TRUNCATE TABLE tablename

    ALTER TABLE tablename
    DEALLOCATE UNUSED;

    --删除表(连同所用constraint)

    DROP TABLE tablename
    CASCADE CONSTRAINTS;

    --给表增加列

    ALTER TABLE TABLENAME
    ADD COLUMN COLUTYPE DEFAULT(VALUE) NOT NULL;

    --删除表中的列

    ALTER TABLE tablename
    DROP COLUMN columnname;

    ALTER TABLE tablename
    DROP COLUMN columnname
    CASCADE CONSTRAINTS CHECKPOINT 1000;

    --标记列不可用

    ALTER TABLE tablename
    SET UNUSED COLUMN columnname
    CASCADE CONSTRAINTS;

    --删除标记为不可用的列

    ALTER TABLE tablename
    DROP UNUSED COLUMNS CHECKPOINT 1000;

    --继续删除列选项

    ALTER TABLE tablename
    DROP COLUMNS CONTINUE CHECKPOINT 1000;

    --把表放到BUFFER_POOL中去

    ALTER TABLE tablename
    STORAGE (BUFFER_POOL RECYCLE);

    [bitsCN_com]


    --避免动态分配EXTENT

    ALTER TABLE tablename ALLOCATE EXTENT;

    --把表放到CACHE中去

    ALTER TABLE tablename ALLOCATE CACHE/NOCACHE;

    4、索引管理

    --创建索引

    CREATE INDEX indexname ON TABLENAME(COLUMNNAME);

    CREATE INDEX indexname ON TABLENAME(COLUMNNAME) TABLESPACE TABLESPACENAME;

    --重新建立索引

    ALTER INDEX indexname REBUILD TABLESPACETABLESPACE;

    --索引分配参数

    ALTER INDEX indexname
    STORAGE(NEXT 400K
    MAXEXTENTS 100);

    --释放索引空间

    ALTER INDEX indexname
    ALLOCATE EXTENT (SIZE 200K
    DATAFILE '/DISK6/indx01.dbf');

    ALTER INDEX indexname
    DEALLOCATE UNUSED;

    --重新整理索引表空间碎片

    ALTER INDEX indexname COALESCE;

    --删除索引

    DROP INDEX indexname

    --把索引放到BUFFER_POOL中

    ALTER INDEX cust_name_idx


    REBUILD
    STORAGE (BUFFER_POOL KEEP);

    5、约束管理

    --建立主键

    ALTER TABLE TABLENAME
    ADD CONSTRAINT CONSTRAINTNAME PRIMARY KEY(COLUMN1,COLUMN2)

    --使约束无效

    ALTER TABLE TABLENAME ENABLE NOVALIDATE CONSTRAINT constraintname;

    ALTER TABLE TABLENAME ENABLE VALIDATE CONSTRAINT constraintname;

    --删除约束

    ALTER TABLE tablenameDROP CONSTRAINT constraintname;

    DROP TABLE tablename CASCADE CONSTRAINTS;(删除表后将所用的外键删除)

    --给列增加缺省值

    ALTER TABLE TABLENAME
    MODIFY columnnameDEFAULT(value) NOT NULL;

    --给表增加外键
    ALTER TABLEtablename
    ADD CONSTRAINTconstraintname
    FOREIGN KEY(column) REFERENCES table1name(column1);

    6、安全策略

    --加密传输

    把客户端环境变量ora_encrypt_login设为true
    把服务器端参数dblink_encypt_login设为true

    --数据库管理员安全策略 www@bitscn@com

    a、建库后立即修改SYS/SYSTEM的口令(9.2后必须修改其口令)
    b、只有数据库管理员才能以SYSDBA登录系统
    c、建立不同角色的管理员,分配不同的权限

    比如:对象创建于维护
    数据库的调整与维护
    创建用户分配角色
    启动关闭
    恢复备份

    --应用开发者的安全策略

    a、开发者的特权只能在测试开发的数据库中赋予权限
    b、自由开发者、受控开发者
    自由开发者:create table\index\procedure\package
    受控开发者:没有以上权限

    7、日志文件管理

    --切换日志文件

    ALTER SYSTEM SWITCH LOGFILE;

    --增加日志文件

    ALTER DATABASE ADD LOGFILE
    ('/DISK3/log3a.rdo',
    '/DISK4/log3b.rdo') size 1M;

    --增加日志成员

    ALTER DATABASE ADD LOGFILE MEMBER
    '/DISK4/log1b.rdo' TO GROUP 1
    '/DISK4/log2b.rdo' TO GROUP 2;

    --删除日志文件

    ALTER DATABASE DROP LOGFILE GROUP 3;

    --删除日志成员

    ALTER DATABASE DROP LOGFILE MEMBER '/DISK4/log2b.dbf';

    --清除日志文件内容

    ALTER DATABASE CLEAR LOGFILE '/DISK3/log2a.rdo';


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多