一、创建数据库
1、确定数据库名、实例名、服务名
数据库名参数:db_name = prod
数据库实例名参
数:instance_name = prod
域名:db_domain
数据库服务名参数:service_names =
prod[.域名] //服务名等于:数据库名.域名,为了省事,一般不要域名。
2、创建新数据库的参数文件:init.ora
需要修改的参数:
db_name
instance_name
service_names
control_files
: d:\oracle\oradata\prod\... 01 02 03
background_dump_dest:
后台信息跟踪文件的存储位置d:\oracle\oradata\prod\bdump
user_dump_dest:
用户信息跟踪文件的存储位置d:\Oracle\oradata\prod\udump
sql_trace = true
3、设置操作系统参数:主要是设置ORACLE_SID选择数据库实例
在Unix下设置实例的方法:
$ORACLE_SID=ora8i
$export
ORACLE_SID
换成另外一个:
$ORACLE_SID=prod
$export ORACLE_SID
在Windows NT/2000下,有一个实例写在注册表中,如果要进入第二个数据库,设置方法如下:
C:\> set
ORACLE_SID=ora8i
C:\> set ORACLE_SID=prod
// 为了不致发生混乱,每次在使用数据库之前,进行上述设置。
4、创建数据库实例
语法:C:\>oradim -new -sid [实例名] -intpwd [口令] -startmode
auto -pfile [数据库参数文件名称及路径]
。红色部分需要用户确定
。startmode: auto, manual
。参数文件名称及路径:
Unix:
/u01/app/oracle/admin/db_name/pfile/initSID.ora
/u01/app/oracle/product/8.1.7/dbs/initSID.ora // 这是oracle直接读取的参数文件
//
在Unix中上面的dbs目录是pfile目录的symbol link,即两上文件是同一个文件。
Windows:
d:\oracle\admin\db_name\pfile\init.ora
d:\oracle\ora81\database\initSID.ora // 这是oracle直接读取的参数文件
/*第二个文件指
向第一个文件,上面这个文件可以随便放到什么位置,只要在第二个文件中通过IFILE指明了其位置,也可以直接用第一个文件的内容替换第二个文件的内
容。*/
[*] 删除数据库实例方法:
D:\> oradim -delete -sid [实例名]
最
后的命令格式为:
D:\> oradim -new -sid prod -intpwd prod -startmode auto
-pfile d:\oracle\ora81\database\initprod.ora
[如果执行了set oracle_sid=prod后,仍然不能通过svrmgrl连接到internal用户,请检查是否在注册表中设置了local串。]
5、创建数据库:
SVRMGR> startup nomount
SVRMGR> create database
prod
logfile group 1('d:\oracle\oradata\prod\log1a.log',
'd:\oracle\oradata\prod\log1b.log') size 2m,
group
2('d:\oracle\oradata\prod\log2a.log',
'd:\oracle\oradata\prod\log2b.log') size 2m
datafile
'd:\oracle\oradata\prod system01.dbf' size 200m
autoextend on next
10m maxsize 1000m
character set zhs16gbk;
[2002.05.15]
//=====================================================================================================================
6、加载数据字典:
(1) 加载常用的数据字典:
SVRMGR>@d:\Oracle\ora81\rdbms\admin\catalog
SVRMGR>@/u01/app/oracle/product/8.1.7/rdbms/admin/catalog
(2) 加载PL/SQL程序包:
SVRMGR>@d:\Oracle\ora81\rdbms\admin\catproc
(3) 加载Java程序包:
SVRMGR> @d:\oracle\ora8i\javavm\install\initjvm
7、网络配置:
配置tnsnames.ora文件
d:\oracle]ora81\network\admin\tnsnames.ora
8、以system登录数据库,加载资源文件profile:
SQL>
@d:\oracle\ora81\sqlplus\admin\pupbld.sql
//如果不运行这个sql程序,普通用户登录时会提示错误。
[C*] 对于新数据库,监听程序不用配置,如果运行中出现没有监听,则运行:
D:\> lsnrctl status
查看
相应的数据库是否已启动监听。如果没有启动监听,运行:
D:\> lsnrctl stop
D:\> lsnrctl
start
重启监听程序。
如果在SQL*Plus中登录数据库时,提示service_name丢失,则重启数据库。
SQL> select name from v$database; //查询当前数据库
[C*]在Unix下:$dbassist
在Windows NT/2000下(oracle8i):
程序组-> Database administration->
Database Configration Assistant
可以删除已创建的数据库(服务、文件)。
通过提示符下命令:oradim -delete -sid prod -srvc oracleserviceprod
SVRMGR> show parameter license // 查看最大会话数,0表示没有限制
共享服务器连接模式:
最大 缺省 说明
65534 254 最大数据库文件数
254 32
最大日志文件数
5 2 最大日志成员数
二、表空间管理
SQL> select * from dba_free_space; // 查询表空间是否存在碎片
1、创建表空间
(1)语法:SQL> Create Tablespace tablespacename
Datafile 'filespec' Attributes
Default Storage
Online/offline;
(2)实例:
SQL> Create tablespace sales_2002
datafile
'D:\oracle\oradata\ora8i\sales_2002_01.dbf'
size 100m,
'D:\Oracle\oradata\ora8i\sales_2002_02.dbf' size 100m
autoextend
on next 100m maxsize unlimited, // 每个文件都可以加上这一行,表空间的扩展属性
'D:\oracle\oradata\ora8i\sales_2002_03.dbf'
size 100m
default storage(initial 100k
next 100k
minextents 1
maxextents unlimited
pctincrease 0);
(3)查询表空间与数据文件对应关系:
SQL> select tablespace_name,
bytes, blocks, autoextensible, file_name from dba_data_files;
(4)创建临时表空间:在创建表空间时增加临时表空间关键字:temporary
SQL> Create tablespace temp_data datafile
'd:\oracle\oradata\ora8i\acc01.dbf' reuse
default storage(initial
100k next 100k minextents 1 maxextents unlimited pctincrease 0)
TEMPORARY;
说明:A.上例中的reuse指在相应的目录已经存在一个acc01.dbf(大小已经确定,例如一个被删除的表空间,但物理文件未被删除),则按 这个文件的大小新建文件,内容将被覆盖。如果文件不存在,需要使用size来确定大小。
B. 临时表空间用于排序,在创建用户时可以为用户指定专用的临时表空间。临时表空间不得用于创建永久性实体(例如表)。
SQL>
create table aa(c1 number(10)) tablespace sales_2002;
SQL> create
table bb(c1 number(10)) tablespace temp_data;
C. 查询表空间类型:SQL> select tablespace_name, contents from
dba_tablespaces;
2、改变表空间:
(1)为表空间增加数据文件:
SQL> Alter tablespace sales_2002 ADD
datafile
'd:\oracle\oradata\ora8i\sales_2002_04.dbf' size 10m,
'd:\oracle\oradata\ora8i\sales_2002_05.dbf'
size 10m
autoextend on next 50m maxsize 1000m;
(2) 将数据文件从一个磁盘移动到另一个磁盘
。将表空间脱机offline
SQL> Alter
tablespace sales_2002 offline;
。物理移动:将要移动的表空间文件复制或移动到目的磁盘
。逻辑移动
SQL> alter tablespace sales_2002
rename datafile
'd:\oracle\oradata\ora8i\sales_2002_04.dbf',
'd:\oracle\oradata\ora8i\sales_2002_05.dbf'
to
'c:\sales_2002_04.dbf',
'c:\sales_2002.05.dbf';
。将表空间联机online
SQL> alter tablespace sales_2002 online;
其中,system表空间数据文件不得
移动。
(3) 修改表空间的缺省存储参数
SQL> alter tablespace sales_2002
default storage(
initial
1m
next 1m
minextents 2
maxextents 200
pctincrease 50);
3、
删除表空间
SQL> Drop tablespace 表空间名; // 空的表空间。
SQL> Drop
tablespace 表空间名 INCLUDING CONTENTS; // 如果表空间中已经建表,必须加Including
contents参数。
删除表空间后,再物理删除相应的表空间文件,一定要确认是否删除了正确的物理文件,在UNIX下,任何文件对root用户来说都没有保护措施,可以 随便删除。
三、Oracle8i启用本地化管理(Locally Managed Tablespaces):
表空间类型:数据字典管理表空间,本地
化管理表空间
本地化管理表空间自动消除磁盘碎片
SQL> create tablespace account datafile
'd:\oracle\oradata\ora8i\acc01.dbf' 10m
default storage(initial 40k
next 40k minextents 1 maxextents 121 pctincrease 0);
SQL>
Alter database datafile 'd:\oracle\oradata\ora8i\acc01.dbf' resize 50m;
SQL> Alter tablespace account coalesce; // 磁盘碎片合并命令。
1、区大小相同
SQL> Create tablespace account
datafile
'd:\oracle\oradata\ora8i\acc01.dbf' size 10m,
'd:\oracle\oradata\ora8i\acc02.dbf'
size 10m
extent management local uniform. size 50k;
// extent
management local: 区本地化管理;uniform:每个区大小相同,如果不指定size,size默认是1m
对于实行本地化管理的数据文件仍然可以使用autoextend on next, maxsize等参数。
查询表空间类型及区管理方式:
SQL> select tablespace_name, extent_management,
allocation_type from dba_tablespaces;
2、区大小由系统自动分配相同(系统缺省方式)
SQL> Create tablespace finance
datafile
'd:\oracle\oradata\ora8i\fina01.dbf'
size 10m
extent management local autoallocate; //
缺省状况是autoallocate,如果只写extent management local。
<=等价=>
SQL> Create tablespace finance
datafile
'd:\oracle\oradata\ora8i\fina01.dbf'
size 10m
extent management local;
表大小 区大小
64K 64K
1m
1m
64m 8m
1000m 64m
3、创建本地化管理临时表空间
SQL> Create temporary tablespace temp1
tempfile
'd:\oracle\oradata\ora8i\temp1_01.dbf'
size 10m
extent management local uniform. size 10k;
[临时表空间不
得使用AutoAllocate选项,就算不写uniform,默认也是uniform]
SQL> select
tablespace_name, extent_management, allocation_type from
dba_tablespaces;
[2002.05.16]
//=====================================================================================================================
四、
回退段管理
1、创建回退段:rbs
[*]手动创建数据库后,必须先创建回退段表空间:
SQL> create tablespace rbs
datafile
'd:\oracle\oradata\ora8i\rbs01.dbf' size 50m;
[*]创建回退段:
SQL> Create rollback segment rs01
tablespace rbs
storage(initial
40k next 40k
minextents 2 // 最少是2,不能是1
maxextents 121
optimal
120k); // optimal值的大小至少比2个区的大小要大才有意义,在本例中要大于80K。
回退段的工作过程:(80K
不够用了)扩张->(使用结束)回缩到Optimal值 ->(120K不够用了)再扩张。
新建回退段的缺省状态是offline.
SQL> Create rollback segment rs02 tablespace rbs; // 如果不加storage参数,则各参数取缺省值(即表空间的相关值)
[*]查询回退段信息:
SQL> select segment_name, tablespace_name, status
from dba_rollback_segs;
[*]回退段的设计方法:
A. 使用create rollback segment 创建多个回退段,至少四个事务平均一个回退段
B.
修改参数文件,将创建的回退段写入下列参数:rollback_segments=(rs01,rs02,...)
C. 重新启动数据库
[*]创建公共回退段:
SQL> create public rollback segment rs10 tablespace
rbs;
修改公共回退段,使公共回退段online:
SQL> alter rollback segment rs10
online;
公共回退段不需要修改参数文件即可online。
查询:SQL> select segment_name, tablespace_name, status, owner from dba_rollback_segs;
2、修改回退段
SQL> Alter rollback segment 回退段名 online/offline; //对于私有回退段来说,只是临时修改,下次数据库启动时,只有参数文件中的回退段是online
3、删除回退段
A. offline
B. SQL> drop rollback segment 段名;
C.
如果是私有回退段,需要将其从参数文件中去掉。
// 无论是公共回退段还是私有回退段,都是系统共用的回退段。即作用相同。
[第五章 Oracle 数据库用户管理]
// PowerPoint讲义:DBA_用户.PPT
一、创建用户的Profile文件
SQL> create profile student limit //
student为资源文件名
FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数
PASSWORD_LOCK_TIME
5 //指定用户被锁定天数
PASSWORD_LIFE_TIME 30 //指定口令可用天数
...
[参考讲
义:P6-P7]
二、创建用户
SQL> Create User username
Identified by password
Default
Tablespace tablespace
Temporary Tablespace tablespace
Profile
profile
Quota integer/unlimited on tablespace;
例:
SQL> Create user acc01
identified by acc01 //
如果密码是数字,请用双引号括起来
default tablespace account
temporary tablespace
temp
profile default
quota 50m on account;
SQL> grant
connect, resource to acc01;
[*] 查询用户缺省表空间、临时表空间
SQL> select username, default_tablespace,
temporary_tablespace from dba_users;
[*] 查询系统资源文件名:
SQL> select * from dba_profiles;
资源文件类似表,一旦创建
就会保存在数据库中。
/********************************************************************************************
SQL>
select username, profile, default_tablespace, temporary_tablespace from
dba_users;
SQL> create profile common limit
failed_login_attempts 5
idle_time
5;
SQL> Alter user acc01 profile common;
**********************************************************************************************/
三、修改用户:
SQL> Alter User 用户名
Identified 口令
Default
Tablespace tablespace
Temporary Tablespace tablespace
Profile
profile
Quota integer/unlimited on tablespace;
1、修改口令字:
SQL>Alter
user acc01 identified by "12345";
2、修改用户缺省表空间:
SQL> Alter user acc01 default tablespace users;
3、修改用户临时表空间
SQL> Alter user acc01 temporary tablespace
temp_data;
4、强制用户修改口令字:
SQL> Alter user acc01 password expire;
5、将用户加锁
SQL> Alter user acc01 account lock; // 加锁
SQL>
Alter user acc01 account unlock; // 解锁
四、删除用户
SQL>drop user 用户名; //用户没有建任何实体
SQL> drop user 用户名
CASCADE; // 将用户及其所建实体全部删除
*1. 当前正连接的用户不得删除。
五、监视用户:
1、查询用户会话信息:
SQL> select username, sid, serial#,
machine from v$session;
2、删除用户会话信息:
SQL> Alter system kill session 'sid, serial#';
3、查询用户SQL语句:
SQL> select user_name, sql_text from
v$open_cursor;
/***************************************************************************************************************************
SQL>
ALTER SESSION SET
NLS_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_TERRITORY=
'CHINA'
NLS_CURRENCY= 'RMB'
NLS_ISO_CURRENCY= 'CHINA'
NLS_NUMERIC_CHARACTERS=
'.,'
NLS_CALENDAR= 'GREGORIAN'
NLS_DATE_FORMAT= 'yyyy-mm-dd
dy'
NLS_DATE_LANGUAGE= 'SIMPLIFIED CHINESE'
NLS_SORT=
'BINARY'
TIME_ZONE= '+08:00'
NLS_DUAL_CURRENCY = 'RMB'
NLS_TIME_FORMAT
= 'HH.MI.SSXFF AM'
NLS_TIMESTAMP_FORMAT = 'DD-MON-RR HH.MI.SSXFF
AM'
NLS_TIME_TZ_FORMAT = 'HH.MI.SSXFF AM TZH:TZM'
NLS_TIMESTAMP_TZ_FORMAT
= 'DD-MON-RR HH.MI.SSXFF AM TZH:TZM'
***************************************************************************************************************************/
[第六章 Oracle权限与角色管理]
一、Oracle 权限管理
SQL> grant connect, resource, dba to acc01;
SQL> revoke connect, resource from acc01;
二、Oracle 角色管理(参考讲义)
SQL> Create Role
Identified by password/ Not
Identified;
SQL> Alter Role
SQL> Grant
SQL> Grant
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21843945/viewspace-668156/ ,如需转载,请注明出处,否则将追究法律责任。