Oracle创建表空间和用户
一、表空间和数据文件之间的关系
Oracle数据库在逻辑上划分为一个或者多个表空间(TABLESPACE)。
Oracle表空间是包含物理数据文件的逻辑实体。一个表空间中可以包含一个或者多个数据文件。
而数据文件是Oracle数据库的物理组成部分,是物理概念。一个数据文件只能隶属于一个表空间。
Oracle数据库中每一个表都属于一个给定的表空间中,通过表空间的逻辑形式管理数据表。
1 查看表空间:
2 SQL> select ts#,name from v$tablespace;
3 查看表空间和数据文件的对应关系:
4 SQL> select t.ts#,t.name,d.ts#,d.name from v$tablespace t,v$datafile d where t.ts#=d.ts#;
1、建立用户和分配权限:
建立:create user 用户名 identified by "密码";
授权:grant create session to 用户名;
grant create table to 用户名;
grant create tablespace to 用户名;
grant create view to 用户名;
2、建立表空间(一般建N个存数据的表空间和一个索引空间):
create tablespace 表空间名
datafile \' 路径(要先建好路径)\***.dbf \' size *M
tempfile \' 路径\***.dbf \' size *M
autoextend on --自动增长
--还有一些定义大小的命令,看需要
default storage(
initial 100K,
next 100k,
);
完整例子:
1 --表空间
2 CREATE TABLESPACE sdt
3 DATAFILE \'F:\tablespace\demo\' size 800M
4 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
5 --索引表空间
6 CREATE TABLESPACE sdt_Index
7 DATAFILE \'F:\tablespace\demo\' size 512M
8 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
9
10 --2.建用户
11 create user demo identified by demo
12 default tablespace demo;
13
14 --3.赋权
15 grant connect,resource to demo;
16 grant create any sequence to demo;
17 grant create any table to demo;
18 grant delete any table to demo;
19 grant insert any table to demo;
20 grant select any table to demo;
21 grant unlimited tablespace to demo;
22 grant execute any procedure to demo;
23 grant update any table to demo;
24 grant create any view to demo;
手动创建Oracle数据库
手动创建Oracle数据库的步骤如下:
1、设置数据库名称和实例名称
2、创建相关目录
3、创建参数文件(修改)
4、创建实例
oradim -new -sid test -intpwd test -srvcstart system/demand
oradim -delete -sid test
5、连接Oracle实例
6、启动实例
7、使用create database创建数据库
8、创建服务器参数文件
1、设置数据库名称和实例名称
set oracle_sid=test
1
2、创建相关目录
d:
cd D:\app\Snakewood\admin
mkdir testdba
cd testdba
mkdir adump
mkdir bdump
mkdir cdump
mkdir udump
mkdir pfile //存放追踪文件
cd..
cd..
cd oradata
mkdir testdba //存放控制文件、数据文件重做日志文件
3、创建参数文件(修改)
到 D:\app\Snakewood\product\11.2.0\dbhome_1\dbs 这个目录下复制init.ora文件到桌面,按照下图修改后拷贝到
D:\app\Snakewood\product\11.2.0\dbhome_1\database
新建文本文件内容如下:
create database test
datafile 'D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/system0.dbf' size 300M reuse autoextend on next 10240K maxsize unlimited extent management local
sysaux datafile 'D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/sysaux01.dbf' size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1"
datafile 'D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/undotbs1.dbf' size 20M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/redo01.log') size 10M,
group 2 ('D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/redo02.log') size 10M,
group 3 ('D:/app/Snakewood/product/11.2.0/dbhome_1/oradata/test/redo03.log') size 10M;
另存为test.sql
4、创建实例
oradim -new -sid test -intpwd test -srvcstart system/demand
oradim -delete -sid test
oradim -new -sid test -intpwd test -srvcstart demand //创建实例同时创建口令文件
oradim -delete -sid test //删除实例
手动创建口令文件
orapwd file=D:/app/Snakewood/product/11.2.0\dbhome_1\database\PWDtest.ora password=test entries=2
5、连接Oracle实例
sqlplus
sys as sysdba
提示已连接到空闲例程说明数据库还未启动
6、启动实例
因为现在只创建了参数文件,控制文件、数据文件和重做日志文件都没有,因此只能进入nomount状态
startup nomount pfile='D:\app\Snakewood\admin\mydba\pfile\initmydba.ora'
7、使用create database创建数据库
8、创建服务器参数文件
create spfile from pfile='D:\app\Snakewood\admin\testdba\pfile\inittestdba.ora'
小结
Oracle11g的路径和Oracle10g的路径不同,
11g是在D:\app\Snakewood…下
10g是在D:\app\Snakewood\product\11.2.0\dbhome_1…下
Set oracle_sid = xxx如果没有修改成功,可以去注册表中找oracle_sid并修改对应的值