数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
oracle数据库开发的一些经验积累(二)

作者:未知 来源:月光软件站 加入时间:2005-5-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 NEXT  1280K MAXSIZE  16383M 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
    TABLESPACE  USER_DATA_TEMP TEMPFILE 'D:\TEMP0111.DBF'
    SIZE 50M REUSE AUTOEXTEND
    ON NEXT  1024K MAXSIZE  16383M EXTENT MANAGEMENT LOCAL UNIFORM
    SIZE 1024K


--增加数据文件

ALTER TABLESPACE  USER_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 BY  USER_DATA
    DEFAULT
    TABLESPACE USER_DATA  TEMPORARY
    TABLESPACE USER_DATA  ACCOUNT UNLOCK;
 
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 INDEX  STORAGE(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)
  全部回收需要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);

--避免动态分配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 TABLESPACE  TABLESPACE;


--索引分配参数

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 tablename  DROP CONSTRAINT constraintname;

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


--给列增加缺省值

ALTER TABLE TABLENAME
MODIFY columnname  DEFAULT(value) NOT NULL;


--给表增加外键
 ALTER TABLE  tablename
 ADD CONSTRAINT  constraintname
 FOREIGN KEY(column) REFERENCES table1name(column1);


6、安全策略

--加密传输

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

--数据库管理员安全策略

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';




相关文章

相关软件