第一步,以最高级别 SYSDBA 身份登录数据库
cmd 进入命令行
登录方式一:
C:\Documents and Settings\Administrator>sqlplus sys/sys as sysdba
SQL*Plus: Release 10.2.0.1.0 – Production on 星期六 5 月 2916:08:00 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OL AP and Data Mining options
SQL>
登录方式二:
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 – Production on 星期六 5 月 2916:27:31 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/sys@orcl as sysdba
已连接。
SQL>
登录方式三:
C:\Documents and Settings\Administrator>sqlplus
SQL*Plus: Release 10.2.0.1.0 – Production on 星期六 5 月 2916:28:45 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
请输入用户名: sys@orcl as sysdba
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OL AP and Data Mining options
SQL>
登录方式四:
C:\Documents and Settings\Administrator>sqlplus
SQL*Plus: Release 10.2.0.1.0 – Production on 星期六 5 月 2916:31:18 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
请输入用户名: scott
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OL AP and Data Mining options
SQL> conn sys/sys@orcl as sysdba;
已连接。
SQL>
登录方式五:
C:\Documents and Settings\Administrator>sqlplus sys/sys@orcl as sysdba
SQL*Plus: Release 10.2.0.1.0 – Production on 星期六 5 月 2916:37:18 2010
Copyr ight (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OL AP and Data Mining options
SQL>
============================================================================================
第二部:创建表空间
1、创建表空间
create tablespace tb_nanc
datafile ‘C:\Javawork\oracle10g\productd\oradata\orcl\tb_nanc.dbf’
size 50M
autoextend on next 50m maxsize 2048m
extent management local;
创建表空间 名为:tb_nanc,
存放文件地址为 C:\Javawork\oracle10g\productd\oradata\orcl\
表空间大小为 50M,超过了就自动增加 50M,最大 2G,
2、创建临时表空间
create temporary tablespace tb_nanc_temp
tempfile
‘C:\Javawork\oracle10g\productd\oradata\orcl\tb_nanc_temp.dbf’
size 32m
autoextend on next 32m maxsize 1024m
extent management local;
创建临时表空间 名为:tb_nanc_temp,
存放文件地址为 C:\Javawork\oracle10g\productd\oradata\orcl\
临时表空间大小为 32M,超过了就自动增加 32M,最大 1G
3、删除表空间及数据
drop tablespace tb_nanc including contents and datafiles;
drop tablespace tb_nanc_temp including contents and datafiles;
DROP TABLESPACE TBS01 INCLUDING CONTENTS AND DATAFILES
select * from dba_data_files
alter database default tablespace system;(更改默认表空间)
============================================================================================
第三部:创建用户并授权
1、创建用户
create user tb_nanc identified by tb_nanc default tablespace tb_nanc
temporary tablespace tb_nanc_temp;
创建了用户 tb_nanc 密码是 tb_nanc
默认在表空间 tb_nanc 和临时表空间 tb_nanc_temp 里面。
2、给用户授权
1,grant connect,resource to tb_nanc;
将 connect,resource 角色权限授权给 tb_nanc
2,grant dba to tb_nanc;
将 dba 角色权限授权给 tb_nanc
3、撤销权限
revoke dba on table1 from zhangch //收回权限
revoke dba from zhangch
数据库特权 说明
DBA 数据库创建者/所有者。能够授予数据库中的其他对象上的特权。
Resource 能够连接到数据库并创建其他对象。
Connect 能够连接到数据库执行查询。
3、如果用户被锁住了,就用语句给解开
alter user tb_nanc account unlock;
============================================================================================
第四部:删除表空间、用户
–//删除表空间
drop tablespace test_temp including CONTENTS and datafiles;
–//修改用户密码:
alter user test identified by new_password;
–//删除用户:
drop user 用户名 cascade; –//执行该语句请小心,会级联删除该用户下所有对象。
–//取消用户权限:
revoke connect,resouce from lqcommunity
===============================================================================
第五部:导入、导出数据库
1 导入数据库
在重新开一个 cmd 命令窗口,直接输入,即在 dos 命令行下,而不是在 sql>下:
imp tb_nanc/tb_nanc@orcl tablespaces=tsp_emr fromuser=tb_nanc touser=tb_nancfile=D:\nancheshenyang\tb_nanc2010-05-29.DMP log=d:\logte%.log
说明:当前用户名 /密码@ 数据库名 fromuser=当初导出时的用户 touser= 导入的新用
户 file=d: \test.dmp
如果全点就是,
IMP hr/hr BUFFER=64000 full=y FILE=D: \zgnc\ehr.dmp
2、导出数据库
在重新开一个 cmd 命令窗口,直接输入,即在 dos 命令行下,而不是在 sql>下:
exp tb_nanc/tb_nanc@orc_nanc owner=tb_nanc file=d:\tb_nancte%.dmplog=d:\logte%.log
6
【其中 orc_nanc 是自己给起的服务名,即\network\admin\tnsnames.ora 下的名称,不是
对方的实例名】
1、 为避免错误,最好,在新创建的表空间,用户名和密码,都是和原来的用户名和密码都一
样的,这样节省很多麻烦事。
第五部:一些常用命令
1、表操作
查看当前用户有哪了些表:
select * from tab;
select table_name from user_tables; //当前用户的表
select table_name from all_tables; //所有用户的表
select table_name from dba_tables; //包括系统表
查看某表的表结构:
desc table_name;
2、用户操作
查看所有用户: select * from all_users;
查看当前用户的角色 select * from user_role_privs;
查看当前用户的系统权限 select * from user_sys_privs
查看当前角色的系统权限 select * from role_sys_privs
3、
select * from all_tab_privs; ——–查看所用的用户的可操作表权限
select * from user_tab_privs; ——–查看当前用户的表可操作权限
创建新用户:
create user abc identified by abc
default tablespace myspace
temporary tablespace myspacetemp;
删除用户: drop user user_name cascade;
为用户授权: grant connect,resource to user_name;
取消用户的授权: revoke connect,resource from user_name;
修改用户密码: alter user user_name identified by user_pwd;
第六部:数据库名、实例名、数据库域名、
全局数据库名、服务名
概念搞得一头雾水。我们现在就来把它们弄个明白。
1、数据库名
什么是数据库名?
数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数 DB_NAME 表示,如果一台
机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,
参数 DB_NAME 被写入
参数文件之中。格式如下:
DB_NAME=myorcl
…
在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修
改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户
无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改 DB_NAME 的值。
但是在 Oracle 启动时,由于参数文件中的 DB_NAME 与控制文件中的数据库名不一致,导致
数据库启动失败,将返回 ORA-01103 错误。
数据库名的作用
数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢
复数据库时都需要使用到的。有很多 Oracle 安装文件目录是与数据库名相关的,如:
winnt: d:oracleproduct10.1.0oradataDB_NAME…
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/…
pfile:
winnt: d:oracleproduct10.1.0adminDB_NAMEpfileini.ora
Unix:
/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORA
CLE_SID.ora
跟踪文件目录:
winnt:
/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/… 另外,在创建数据
时,careate database 命令中的数据库名也要与参数文件中 DB_NAME 参数的值一致,否
则将产生错误。同样,修改数据库结构的语句 alter database ,当然也要指出要修改的
数据库的名称。
如果控制文件损坏或丢失,数据库将不能加载,这时要重新创建控制文件,方法是以 nomount
8
方式启动实例,然后以 create controlfile 命令创建控制文件,当然这个命令中也是指指
DB_NAME。还有在备份或恢复数据库时,都需要用到数据库名。
总之,数据库名很重要,要准确理解它的作用。
查询当前数据名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看参数文件。
修改数据库名前面建议:应在创建数据库时就确定好数据库名,数据库名不应作修改,因为修
改数据库名是一件比较复杂的事情。那么现在就来说明一下,如何在已创建数据之后,修改数
据库名。步骤如下:
1.关闭数据库。
2.修改数据库参数文件中的 DB_NAME 参数的值为新的数据库名。
3.以 NOMOUNT 方式启动实例,修建控制文件( 有关创建控制文件的命令语法,请参考 oracle
文档)
2、数据库实例名
什么是数据库实例名?
数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是
数据库实例名。实例名也被写入参数文件中,该参数为 instance_name,在 winnt 平台中,
实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。在一般情况下,数据库名和实例名是一对一的关系,
但如果在 oracle 并行服务器架构( 即 oracle 实时应用集群) 中,数据库名和实例名是一对多
的关系。
查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在参数文件中查询。
数据库实例名与 ORACLE_SID 虽然两者都表是 oracle 实例,但两者是有区别的。
instance_name 是 oracle 数据库参数。而 ORACLE_SID 是操作系统的环境变量。
ORACLD_SID 用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过
ORACLE_SID。在 winnt 下,ORACLE_SID 还需存在于注册表中。且 ORACLE_SID 必须与
instance_name 的值一致,否则,你将会收到一个错误,在 unix 平台,是“ORACLE not
available”,在 winnt 平台,是 “TNS:协议适配器错误”。数据库实例名与网络连接数
据库实例名除了与操作系统交互外,还用于网络连接的 oracle 服务器标识。当你配置 oracle
主机连接串的时候,就需要指定实例名。当然 8i 以后版本的网络组件要求使用的是服务名
SERVICE_NAME。这个概念接下来说明。
9
3、数据库域名
什么是数据库域名?
在分布工数据库系统中,不同版本的数据库服务器之间,不论运行的操作系统是 unix 或是
windows,各服务器之间都可以通过数据库链路进行远程复制,数据库域名主要用于 oracle
分布式环境中的复制。举例说明
如:
全国交通运政系统的分布式数据库,其中:
福建节点: fj.jtyz
福建厦门节点: xm.fj.jtyz
江西: jx.jtyz
江西上饶:sr.jx.jtyz
这就是数据库域名。
数据库域名在存在于参数文件中,他的参数是 db_domain.
查询数据库域名
方法一:select value from v$parameter where name = ‘db_domain’;
方法二:show parameter domain
方法三:在参数文件中查询。
全局数据库名
全局数据库名=数据库名+ 数据库域名,如前述福建节点的全局数据库名是:oradb.fj.jtyz
4、数据库服务名
什么是数据库服务名?
从 oracle9i 版本开始,引入了一个新的参数,即数据库服务名。参数名是 SERVICE_NAME 。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
查询数据库服务名
方法一:select value from v$parameter where name = ‘service_name’;
方法二:show parameter service_name
方法三:在参数文件中查询。
数据库服务名与网络连接从 oracle8i 开如的 oracle 网络组件,数据库与客户端的连接主机
串使用