搜档网
当前位置:搜档网 › oracle_用户下创建多个oracle实例的方法

oracle_用户下创建多个oracle实例的方法

oracle_用户下创建多个oracle实例的方法
oracle_用户下创建多个oracle实例的方法

一个oracle 用户下面创建多个实例

朱晓凯

2012/12/10

v1.0

前言

本文主要介绍了同一个oracle 用户下面如何重建多个oracle 实例。本文的测试环境为redhat 5.4,但该方法适应用大部分unix 系统(aix、hp-ux、suse linux等),本人也在AIX 5.3 系统上面实践过,通过此方法创建实例不存在任何问题。

一、环境介绍

系统:rhel 5.4

oracle 版本:10.2.0.1

原实例:

用户:oracle

oracle sid: orcl

oracle_base:/oracle/inst1

oracle_home:/oracle/inst1/product/10.2.0/db_1

数据文件:/oracle/inst1/oradata/orcl

参数文件:/oracle/inst1/product/10.2.0/db_1/dbs

控制文件:/oracle/inst1/oradata/orcl

归档路径:/oracle/inst1/arch/orcl

新实例:

用户:oracle

oracle sid: orcl3

oracle home: /oracle/inst1/ product/10.2.0/db_1

oracle_base:/oracle/inst1

oracle_home:/oracle/inst1/product/10.2.0/db_1

数据文件:/oracle/inst1/oradata/orcl3

参数文件:/oracle/inst1/product/10.2.0/db_1/dbs

控制文件:/oracle/inst1/oradata/orcl3

归档路径:/oracle/inst1/arch/orcl3

二、设置用户环境变量

说明:这里我们把新的oracle sid 加到用户的配置文件中(.bash_profile),其实不加入也没关系,加入只是为了便于其他管理和维护人员能够更好的理解和维护。

添加新的实例的SID

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

TMP=/tmp;

export TMP

TMPDIR=$TMP;

export TMPDIR

ORACLE_BASE=/oracle/inst1;

export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;

export ORACLE_HOME

ORACLE_SID=orcl;

ORACLE_SID=orcl3;

export ORACLE_SID

ORACLE_TERM=xterm;

export ORACLE_TERM

PATH=/usr/sbin:$PATH;

export PATH

PATH=$ORACLE_HOME/bin:$PATH;

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

export CLASSPATH

unset USERNAME

注意:oracle sid 环境变量为默认的环境变量,即默认环境变量为orcl3,配置文件中放在后面的设置会覆盖前面的设置。

用Xmanager 连接到服务器上。Su – oracle

[oracle@10.14.54.199 dbs]# su – oracle

[oracle@10.14.54.199 dbs]$dbca 创建2个数据库

三、创建新实例的参数文件

[oracle@10.14.54.199 dbs]$ ls

hc_orcl2.dat initdw.ora initorcl.ora lkORCL2 orapworcl2

spfileorcl.ora

hc_orcl.dat init.ora lkORCL orapworcl spfileorcl2.ora

[oracle@10.14.54.199 dbs]$ pwd

/oracle/inst1/product/10.2.0/db_1/dbs

[oracle@10.14.54.199 dbs]$ cp initorcl.ora initorcl3.ora

注:这里我们通过拷贝原实例参数文件的方法进行创建,然后再进行修改。

修改新实例的参数文件

orcl.__db_cache_size=184549376

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=88080384

orcl.__streams_pool_size=0

*.audit_file_dest='/oracle/inst1/admin/orcl3/adump'

*.background_dump_dest='/oracle/inst1/admin/orcl3/bdump'

*.compatible='10.2.0.1.0'

*.control_files='/oracle/inst1/oradata/orcl3/control01.ctl','/oracle/inst1/orad ata/orcl3/control02.ctl','/oracle/inst1/oradata/orcl3/control03.ctl'

*.core_dump_dest='/oracle/inst1/admin/orcl3/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='orcl3'

*.db_recovery_file_dest='/oracle/inst1/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.job_queue_processes=10

*.log_archive_dest_1='location=/oracle/inst1/arch/orcl3'

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=285212672

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/oracle/inst1/admin/orcl3/udump'

创建新实例的相关目录:

[oracle@10.14.54.199 ~]$ cd /oracle/inst1/admin/

[oracle@10.14.54.199 admin]$ mkdir orcl3

[oracle@10.14.54.199 admin]$ ls

orcl orcl2 orcl3

[oracle@10.14.54.199 admin]$ cd orcl3

[oracle@10.14.54.199 orcl3]$ mkdir adump bdump cdump udump

[oracle@10.14.54.199 orcl3]$ cd /oracle/inst1/oradata/

[oracle@10.14.54.199 oradata]$ mkdir orcl3

[oracle@10.14.54.199 oradata]$ ls

orcl orcl2 orcl3

[oracle@10.14.54.199 oradata]$ pwd

/oracle/inst1/oradata

[oracle@10.14.54.199 oradata]$ ls

orcl orcl2 orcl3

[oracle@10.14.54.199 oradata]$ cd ..

[oracle@10.14.54.199 inst1]$ ls

admin arch database flash_recovery_area libXp-1.0.0-8.1.el5.i386.rpm oradata oraInventory product

[oracle@10.14.54.199 inst1]$ cd arch

[oracle@10.14.54.199 arch]$ ls

orcl orcl2

[oracle@10.14.54.199 arch]$ mkdir orcl3

[oracle@10.14.54.199 arch]$ ls

orcl orcl2 orcl3

启动实例测试

[oracle@10.14.54.199 arch]$ export ORACLE_SID=orcl3

[oracle@10.14.54.199 arch]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Wed Dec 5 17:46:40 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba;

Connected to an idle instance.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area 285212672 bytes

Fixed Size 1218992 bytes

Variable Size 92276304 bytes

Database Buffers 188743680 bytes

Redo Buffers 2973696 bytes

SQL> select instance_name from v$instance;

INSTANCE_NAME

----------------

orcl3

创建密码文件:

oracle@10.14.54.199 arch]$ orapwd

file=/oracle/inst1/product/10.2.0/db_1/dbs/orapworcl3 password=oracle entries=10;

四、创建数据库

4.1、编写数据库创建脚本

下面为创建数据库的脚本:

CREATE DATABASE orcl3

USER SYS IDENTIFIED BY oracle

USER SYSTEM IDENTIFIED BY manager

LOGFILE GROUP 1 ('/oracle/inst1/oradata/orcl3/redo01.log') SIZE 20M, GROUP 2 ('/oracle/inst1/oradata/orcl3/redo02.log') SIZE 20M,

GROUP 3 ('/oracle/inst1/oradata/orcl3/redo03.log') SIZE 20M MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

MAXINSTANCES 1

CHARACTER SET US7ASCII

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '/oracle/inst1/oradata/orcl3/system01.dbf' SIZE 325M REUSE

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE '/oracle/inst1/oradata/orcl3/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE tbs_1 datafile '/oracle/inst1/oradata/orcl3/tbs_1.dbf' size 50m

DEFAULT TEMPORARY TABLESPACE temp

TEMPFILE '/oracle/inst1/oradata/orcl3/temp01.dbf'

SIZE 20M REUSE

UNDO TABLESPACE undotbs1

DATAFILE '/oracle/inst1/oradata/orcl3/undotbs01.dbf'

SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED /

4.2、创建数据库

4.3、验证是否创建成功

查询数据库状态

SQL> select status from v$instance;

STATUS

------------

OPEN

SQL>

4.4、运行后续脚本,创建数据字典及相关视图

SQL>conn sys as sysdba

SQL>@?/rdbms/admin/catalog.sql;

此过程可能需要10分钟左右

SQL>@?/rdbms/admin/catproc.sql;

此过程可能需要15分钟左右

SQL>@?/rdbms/admin/catblock.sql;

SQL>@?/rdbms/admin/catoctk.sql;

SQL>@?/rdbms/admin/owminst.plb;

SQL>conn system/oracle

SQL>@?/sqlplus/admin/pupbld.sql;

SQL>@?/sqlplus/admin/help/hlpbld.sql helpus.sql

五、客户端连接

5.1、监听文件配置(listener.ora)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/inst1/product/10.2.0/db_1)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = /oracle/inst1/product/10.2.0/db_1)

(SID_NAME = orcl)

)

(SID_DESC =

(GLOBAL_DBNAME = orcl3)

(ORACLE_HOME = /oracle/inst1/product/10.2.0/db_1)

(SID_NAME = orcl3)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.14.54.199)(PORT = 1521)) )

)

5.2、本地服务名称配置(tnsnames.ora)

# Generated by Oracle configuration tools.

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.14.54.199)(PORT = 1521)) (CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

ORCL2 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.14.54.199)(PORT = 1521)) (CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl2)

)

)

ORCL3 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.14.54.199)(PORT = 1521)) (CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl3)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) )

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

Oracle系统中用户权限的赋予

Oracle系统中用户权限的赋予,查看和管理. 在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或oper的权限,只考虑普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据表权限. 1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了): create user DB_USER identified by DB_USER_PW '创建用户DB_USER,密码为DB_USER_PW grant create session to DB_USER '给用户创建会话的权限 grant resource to DB_USER 2.当用户建立后,会自动在Oracle数据库系统中生成属于该用户的Scheme (可以理解为所有属于该用户的表,视图....等对象的集合). 该用户可以将对这些对象的访问权限赋予其它的系统用户. 3.该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于CNOUG网站): 本用户读取其他用户对象的权限: select * from user_tab_privs; 本用户所拥有的系统权限: select * from user_sys_privs; ORACLE数据库用户与权限管理 ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。 2. 1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。 建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分

oracle创建用户及权限说明文档

Oraclec创建用户 一、命令行创建用户具体步骤如下: 1.以管理员身份登录系统并创建一个新的表空间,操作如下: 操作如下: 2. Next 5M maxsize 100M ;----每次扩大5M,但最大为100M

3. Temporary tablespace test1_temp; ----设置临时表空间为test1_temp 4. 操作如下 5. 操作如下 6.最后提交即可。Commit 二、表空间的增删改查 1. 2. 如下操作,其中标示出来的路径即为查询到的要更改的表空间的具体路径,将该路径加到语句2中的单引号处即可。

3. 4.

四、权限的设置 1.权限的分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 2.系统权限管理 DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE: 拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT: 拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 3.系统权限授权命令及用户管理。 [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys 用户相同的权限,system用户的权限也可以被回收。] 例: SQL> connect system/manager SQL> Create user user50 identified by user50; SQL> grant connect, resource to user50; 查询用户拥有哪里权限: SQL> select * from dba_role_privs; SQL> select * from dba_sys_privs; SQL> select * from role_sys_privs; 删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除。 4.给新建的用户分配只有连接以及对某些表和视图的查询权限: oracle授权对视图的查询.docx 5.用户管理: 1)、创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数 PASSWORD_LOCK_TIME 5 //指定用户被锁定天数 PASSWORD_LIFE_TIME 30 //指定口令可用天数 2)、创建用户 SQL> Create User username Identified by password Default Tablespace tablespace Temporary Tablespace tablespace Profile profile Quota integer/unlimited on tablespace; 6.用户密码过期问题: 首先,查看系统中有哪些用户:

oracle期末填空题整理

1、数据操纵语言中典型的四种语句是Insert、select 、update和delete 。 2、事务处理控制语言中的Commit命令表示提交事务,而回退事务则用ROLLBACK命令表示。 3、获取字符串变量长度的函数是LENGTH。 4、Oracle数据库中,生成唯一、连续的整数的对象是SEQUENCE(序列)。 5、PL/SQL基本语句块中的声明部分使用DECLARE关键词。 6、PL/SQL中对变量进行赋值,除了使用赋值符号?:=?外,还可以使用SELECT…INTO语句。 7、显示游标中要提取数据行,应使用FETCH关键词。 8、存储过程的参数模式除了具有In和Out外,还有IN OUT模式。 1.Oracle EnterpriseManager是一个基于 B/S的框架系统。 2.Oracle数据库的存储结构分为物理结构和逻辑结构。 3.在游标或者游标变量打开后还没有进行第一次提取时,%found属性为null。 4.在oracle中已commit或rollback作为上一个事务的结束标志及下一个新事物开始的标志。 5. DML表示数据操作语言,主要的DML有SELECT,INSERT,UPDATE,DELETE. 6.索引的主要目标是提高访问的速度。 7.在Oracle database 10g 系统中,可以使用DBCA工具和CREATE DATEBASE命令两种方式创建数据库。 8.命令Startup nomount只能启动数据库实例,但不能装载和打开数据库。 9.在输入URL进入Oracle Enterprice Manager Database Control 的时候,必须指出ip 地址和端口号。 10.在登录Oracle Enterprice Manager Database Control时,连接身份有两种选择,分别为normal和sysdba。 1. RDBMS的全称是关系数据库管理系统。 2. SQL*PLUS环境中的append指令的作用是追加在表的。 3. SQL*PLUS环境中的connect指令的作用是某用户连接至数据库。 4. SQL*PLUS环境中的list指令的作用是显示备份信息,缓冲区中最后命令。 5. SQL*PLUS环境中的show指令的作用是显示当前会话的。 8. 初始化参数的文件名称为 init.ora 。 9. 建立表格的语句是create table table_name(variable variable_type);。 10. 为oracle数据库中表格的每一列设定数据类型时,常用的数据类型有 number 、 char 、 varchar 、 date 。 11. oracle数据库中包含的数据约束有唯一约束、非空约束、主键约束、外键约束、 check约束。 12. 复制一个表格可以使用 create table table_name as select * from ref_table_name 。 13. 修改已经存在的表的存储参数 pfile 。 15. 创建一个简单的用户testUser, 密码为test的语句是create user testUser identified by test; 16. 创建存储过程的语句是create or replace procedure as … begin … end; 17. 创建一个视图的语句是create view as select … from table_name___ 18. 提交一个事务使用关键字___commit_____ 19. 获得两个集合的交集使用____intersect___ 20. 写出从表A中获取从第10条到第20条的sql语句select b.* from (select *,rownum rn from table_name order by col1)

oracle考题教学提纲

1.下面对数据库文件的叙述中,正确的是C A、一个表空间只能对应一个人数据库文件 B、一个数据文件可以对应多个表空间 C、一个表空间可以对应多个数据库文件 D、数据库文件存储了数据库中的所的日志信息 2.下面对数据库逻辑存储结构叙述中,正确的是__AB__ A、一个数据库实例由多个表空间组成 B、一个人段由多个区组成 C、一个人区由多个段组成 D、一个人块由多个区组成 3.下面哪种后台进程用于将数据缓冲区中的数据写入数据文件?__B__ A、LGWR B、DBWn C、CKPT D、ARCn 4.系统全局区包括下面那些区域?__ACD__ A、java池 B、软件代码区 C、数据缓冲区 D、日志缓冲区 5.解析后的sql语句会缓存到下面的SGA哪个区域中?_C___ A、java池 B、大型池 C、共享池 D、数据缓冲区 1.在SQL*Plus中链接数据库时,可以使用CONNECT命令。下面的4个选项中,哪几个命令是正确的?其中,用户名为scott,密码为tiger,数据库名为orcl。____D________ A.CONNECT scott/tiger; B.CONNECT tiger /scott; C.CONN scott/tiger as sysdba; D.CONN scott/tiger@orcl as sysdba; 2.执行语句SAVE scott_emp_query.sql APPEND,执行结果表示_____C_____。 A.如果scott_emp_query.sql文件不存在,则出现错误 B.如果scott_emp_query.sql文件已经存在,则出现错误 C.将缓冲区中的内容追加到scott_emp_query.sql文件中,如果该文件不存在,会创建该文件 D.将缓冲区中的内容替换掉 scott_emp_query.sql文件的内容,如果该文件不存在,会创建该文件 3.使用SQL*Plus中的____B_______,可以将文件中的内容检索到缓冲区,并且不执行。 A.SAVE命令 B.GET命令 C.START命令 D.SPOOL命令

oracle常用权限语句

oracle 用户创建及权限设置 权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> conn / as sysdba; SQL>create user username identified by password SQL> grant dba to username; SQL> conn username/password SQL> select * from user_sys_privs; 我们将从创建 Oracle 用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对 Oracle 用户权限表有个深入的了解。 一、创建 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 二、登陆sqlplus / as sysdba;// 登陆sys帐户sqlplus sys as sysdba;// 同上 sqlplus scott/tiger;//登陆普通用户scott sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott 三、管理用户 create user zhangsan;//在管理员帐户下,创建用户zhangsan alter user scott identified by tiger;//修改密码

四,授予权限 1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限 /*管理员授权*/ grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限 grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限 grant create table to zhangsan;//授予创建表的权限 grante drop table to zhangsan;//授予删除表的权限 grant insert table to zhangsan;//插入表的权限 grant update table to zhangsan;//修改表的权限 grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public) 2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权 /*oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的*/ grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限 grant drop on tablename to zhangsan;//授予删除表的权限 grant insert on tablename to zhangsan;//授予插入的权限 grant update on tablename to zhangsan;//授予修改表的权限 grant insert(id) on tablename to zhangsan; grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限 五、撤销权限 基本语法同grant,关键字为revoke 六、查看权限 select * from user_sys_privs;//查看当前用户所有权限 select * from user_tab_privs;//查看所用用户对表的权限 七、操作表的用户的表 /*需要在表名前加上用户名,如下*/ select * from zhangsan.tablename 八、权限传递 即用户A将权限授予B,B可以将操作的权限再授予C,命令如下: grant alert table on tablename to zhangsan with admin option;//关键字 with admin option grant alert table on tablename to zhangsan with grant option;//关键字 with grant option效果和admin类似 九、角色 角色即权限的集合,可以把一个角色授予给用户 create role myrole;//创建角色

Oracle创建序列的方法及技巧

Oracle创建序列的方法及技巧 日期:2008-06-23] 来源:互联网整理 前面说过,关系数据库的一个最重要的方面是,每个表必须有一个主键。许多情况下,在数据库中创建一个作为标识符的新键列是最容易的。例如,Agent s表有一个作为主键的AgentID列。但是,总是存在一个问题:从何处取得保证唯一的新编号?在一个较大的组织机构中,可能有一个人力资源部,可以建立某种处理,以便新雇员总能分配一个唯一的编号,并且在雇用某人时该数据被录入到表中。但必须有人密切关注所分配的所有编号,并且还需要检验它们唯一性的一个表单。 相对于依赖基于人工的处理,让数据库生成用作键值的编号更有意义。orac le为此目的使用序列。序列(sequence)是Oracle在需要时用来产生新值的一个编号集合。序列的两个关键点是:必须预先建立;需要代码请求生成新值。序列的编号不是在录入新行时自动生成的。你必须编写代码来生成值,并把它们存储在合适的列中。注意,可以对要自动生成编号的表的Insert事件编写一个数据库触发器。但是,Oracle中最常见的方法是在需要时生成关键值,通常是在表单上生成。 一般,在定义原始表时定义一个序列。但是,因为序列与表之间不存在直接的关系,所以可以在创建编号前建立序列。序列只需创建一次,在整个SQL*Plu s中都可以使用。 (1) 因为表中已经存在数据,找出其最大值: SELECT Max(AgentID) FROM Agents; (2) 最大值应该为15521,你可能想从一个比它大的值开始。用15522就可以了,但为保险起见,从20000开始: CREATE SEQUENCE seq_Agents INCREMENT BY 1 START WITH 20000; (3) 也是用SQL检索新值,它自动用序列定义中指定的值给计数器增量。试一下,以保证理解相应的命令: SELECT seq_Agents.NEXTVAL FROM dual; 此命令使用了人为的dual表,因为PL/SQL总是要求使用FROM子句。它应该返回值20000。如果重复此命令,它将返回20001、20002,如此等等。注意,序列简单地返回数字,不对这些数字做任何事情。由你决定使用这些数字作为新主

oracle客户端的安装和用户的创建

1、光驱: /dev/cdrom 2、挂载光驱 1)挂载点:就是一个目录 2) mount /dev/cdrom 挂载点的名称 卸载光驱 umount /dev/cdrom U盘挂载 /dev/mnt mount –t -vfat /dev/mnt /mnt/usb 3、ftp的配置 1)关闭防火墙 service iptables stop; 2) 关闭selinux vi /etc/selinux/config - disabled init 6 3) 启动ftp service vsftpd start 4) 要使用root用户登录ftp vi /etc/vsftpd/ftpusers; vi /etc/vsftpd/user_list; 注释掉root ,因为默认情况下ftp不允许直接向root用户传输文件。 4、软件安装 1)rpm方式 rpm: redhat package management rpm -qa 查询系统中所有以rpm方式安装的软件 -e 卸载软件包 -i 安装软件包 -v 显示提示

-h 显示安装进度 2)源码方式 先编译 ./configure --选项。。 make make install 3) yum方式,必须有yum源(在外网) yum install compat-db 5、定时任务 周期性任务 Crontab -e 编辑任务 Crontab -l 显示当前有哪些任务 Crontab -r 删除所有任务 一次性任务 at 时间 -f 脚本 at now + 10 minutes -f test.sh 6、JDK安装 上传jdk*****.bin 授权可执行 执行后,默认安装到/usr/java/ 配置系统环境变量 vi /etc/profile JAVA_HOME=/usr/java/jdk1.6.0_45 PATH=$JAVA_HOME/bin:$PATH; CLASSPATH=.:$JAVA_HOME/lib; 重启终端,测试 ------------------------------------------------------------------

Oracle SYS.AUDSES$ 序列 说明

一.S YS.AUDSES$ 序列说明 1.1 MOS 说明 MOS 文档:How Sessions get Their AUDSID Identifier [ID 122230.1] Sessions connecting to an Oracle database have a number of identifiersassigned to them which can be found in the V$SESSION dynamic view. --当session 连接到Oracle 数据库时,会分配一个标识号,这个标识号可以从v$session这个视图里查询。 One of these identifiers is V$SESSION.AUDSID. This identifier is particularlyuseful because it can also be obtained by a session using the SQL functionUSERENV('SESSIONID'). In this way, a session can find its own session-related information. --其中一个标识符就是v$session.audsid. 这个标识符非常有用,因为它也可以用SQL 函数USERENV(‘SESSIONID’) 来获取,这样,session 就可以发现其关联的信息。 1.2 SESSION 获取v$session.audsid说明 A session connected to an Oracle database may obtain one of its sessionidentifiers, the Auditing Session ID, by use of the built-in USERENV SQLfunction. For example, in SQL*Plus, a query like the following can be used: SQL> select userenv('SESSIONID') from dual; USERENV('SESSIONID') -------------------- 13591 --查看当前的Auditing session id This value may be used to find out more information about the current sessionas it is also recorded in the column AUDSID of the V$SESSION dynamic view. --通过这个audid,然后和v$session结合,就可以查看session 的更多信息。Continuing the previous example: SQL> select sid,serial#,audsid,program from v$session where audsid=13591; SID SERIAL# AUDSID PROGRAM ---------- ---------- ---------- ------------------------------------------

Oracle 创建用户

Oracle 创建用户 创建一个新的数据库用户是使用CREATE USER 语句完成的,该语句一般是由DBA 用户来执行;如果要以其他用户身份创建用户,则要求用户必须具有CREATE USDER 系统权限。 每个用户在连接到数据库时,都需要进行身份验证。身份验证可以通过操作系统进行,也可以通过数据库进行,或者通过独立的网络服务器进行。数据库验证是指使用数据库来检查用户、密码以及连接用户的身份,该方式也是最常用的用户验证方式,因此本书重点介绍数据库验证方式。采用数据库验证具有如下优点: ● 用户账号及其身份验证全部由数据库控制,不需要借助数据库外的任何控制。 ● 当使用数据库验证时,Oracle 提供了严格的密码管理机制,加强了密码的安全性。 如果使用数据库验证,则创建用户时必须提供连接密码,并且密码必须是单字节字符。例如,下面的语句创建了一个用户ATG ,并为该用户指定了登录密码、默认表空间、临时表空间: SQL> connect system/password 已连接。 SQL> create user developer 2 identified by developer 3 default tablespace user01 4 quota 10m on user01 5 temporary tablespace temp; 用户已创建。 在上面的语句中,创建了一个名为DEVELOPER 的用户。其中,子句IDENTIFIED BY 指定用户密码,该密码是用户的初始密码,在用户登录到数据库后可以对其进行修改。DEFAULT TABLESPACE 子句为用户指定默认表空间,这样在建立数据库对象(表、索引和簇)时,如果不指定TABLESPACE 子句,Oracle 会自动在默认表空间上为这些对象分配空间。TEMPORARY TABLESPACE 子句用于为用户指定临时表空间,当用户所执行的SQL 语句需要进行排序操作时,若临时数据尺寸超过PGA 工作区,则会在该表空间上建立临时段。QUOTA 子句为用户指定表空间配额,即用户对象在表空间上可占用的最大空间。 在创建用户时需要注意,Oracle 不允许使用其他类型的表空间作为临时表空间使用,同样,也不允许使用临时表空间作为默认表空间。否则会出现如下所示的错误: SQL> create user developer02 2 identified by developer 3 default tablespace USER01 4 quota 128m on users 5 temporary tablespace USERS; create user atg02 注 意 使用过Oracle 10g 以及早期版本的用户需要注意,11g 中的用户密码是区分大小的。

oracle 创建create user 及授权grant 查看登陆的用户

oracle 创建create user 及授权grant 查看登陆的用户: 以下都可以: show user; select sys_context('userenv','session_user') from dual; select user from dual; 查看所有登录的用户必须为DBA 用户: select username from v$session; sys、system等DBA 用户查看其他用户(test)中的对象(表): SQL> select * from test.student; 创建一个普通用户都把该用户用起来的流程: 1、创建用户 SQL>create user test indentified by test; 这样就创建了一个用户名密码都为test的用户 但这个时候test还是不能登陆成功的,我们需要赋予相应的权限 2、赋予create session的权限 SQL>grant create session to test; 这样test用户就能成功登陆进去 但是此时用户还是不能创建表我们需要赋予用户创建表的权限: SQL>grant create table to test; 但是用户此时还不能创建表因为需要有使用表空间的权限(相当于用户有了进房间的钥匙但是没有进大门的钥匙。。。) 所以也应该赋予相应的权限 SQL>grant unlimited tablespace to test; 这个时候用户就拥有了创建表的权限由于表是用户test的相应的他就拥有了对创建的表的增删查改的权限了 3、查看用户拥有什么权限可以通过查询一个系统的视图(数字字典) SQL>select * from user_sys_privs; 这样就可以知道当前用户的权限 4、撤销权限 SQL> revoke create table from test; ----------------------------- 一些常用视图的区分 dba_tables dba_all_tables user_tables user_all_tables all_tables

实验二创建数据库用户及授权

实验二创建数据库用户及授权 一、实验目的 掌握Oracle11g的基本操作。理解Oracle用户概念;掌握Oracle11g数据库登录过程及方法,数据的导入与导出。 二、实验属性 设计性 三.实验仪器设备及器材: 1.安装有windows操作系统计算机。 2.安装有Oracle11g和SQL Server的计算机。 3.安装有Visual Studio .net和Java编译器(eclipse、Netbean等)的编译器。 4.计算机具备网络环境。 四.实验要求 1、建立一个永久表空间tbs_test, 建立一个临时表空间ts_temp。 create tablespace tbs_test datafile 'e:\app\zhangxibo\oradata\orcl\tbs_test'size 10m autoextend on extent management local autoallocate; create temporary tablespace ts_temp

tempfile 'e:\app\zhangxibo\oradata\orcl\ts_temp'size 50m autoextend on extent management local; 2、创建用户Turing。该用户的表空间是tbs_test和ts_temp。 create user Turing identified by 123456 profile default default tablespace tbs_test temporary tablespace ts_temp account unlock; 3、给用户Turing授权。(create user Turing identified by 123456) grant connect,resource, create session, create table, create procedure, create sequence, create trigger,

ORACLE单据序列的概念及应用V

单据序列的概念及应用

目录 文档控制 ................................................................................................................................... i i 概述 . (4) 单据序列概念 (4) 单据序列(客户化应用) (7) AR 中的单据序列 (11) AR 中的单据序列试验 (14) 单据序列的实用意义分析 (23) 已解决问题和未解决问题 (27) 未解决问题 (27) 已解决问题 (27)

概述 本文对 Oracle ERP系统中“单据序列”的概念进行了初步的探索和实验。目的在 于进一步理解“单据序列”的概念和作用 单据序列概念 序列的概念 Oracle 对于序列概念的描述如下: 单据序列可对 Oracle Applications 产品所生成的单据进行唯一编号。利用 Oracle Applications,您可以通过在表单中输入数据并生成单据(如发票),起动一 项事务处理。单据序列会生成跟踪线索,用以标识创建了该事务处理的应用产品(如 Oracle Receivables),以及所生成的原始单据(如发票编号 1234)。 单据序列可以提供完整性的证明。例如,单据序列可用于反映每项事务处理,甚至是失败的事务处理。 单据序列还可以提供跟踪线索。例如,单据序列可以提供一条从总帐到子分类帐,再到最初影响帐户余额的单据的跟踪线索。 由于单据序列会生成跟踪数据,因此即使单据被删除,它们的跟踪记录也会保留下来。

oracle数据库创建用户,给用户授权,创建表的语句程序代码

1、创建用户,给该用户授权 Drop user clwz_user 删除用户名为“clwz_user”的用户,注意当删除该用户时,用户下的所有表,都会被删除。 CREATE USER CLWZ_USER IDENTIFIED BY CLWZPZXTSDGAB DEFAULT TABLESPACE clwz_dy TEMPORARY TABLESPACE clwz_dy PROFILE DEFAULT; 创建用户,用户名为“CLWZ_USER”,密码为“CLWZPZXTSDGAB”,默认的表空间为“clwz_dy”, GRANT "DBA" TO "CLWZ_USER"; 付给用户CLWZ_USER对oracle操作的dba权限 2、创建表 drop table vio_users; 删除表名为“vio_users”的表 Oracle中常用的数据类型 Char:存放定长字符数据 Varchar2:存放可变厂字符数据 Number(1,d):存放数值型数据,1代表总位数,d代表小数点厚位数 Date:存放日期 create table vio_users( police_no varchar2(10) primary key, name varchar2(20) not null, password varchar2(20), kind char(1), csrq date, xzqh varchar2(10), privilege varchar2(30) ); 创建表“vio_users”,其中字段police_no为唯一索引字段,字段name为不可空,其他字段默认可空 Desc vio_users 查看表为vio_users的表结构 若想创建和表vio_users的表结构一样,也要其数据的话 Create table aa as select * from vio_users; 若想创建和表vio_users的表结构一样,不要其数据的话 Create table aa as select * from vio_users where rownum<1

ORACLE数据库用户与权限管理

ORACLE数据库用户与权限管理ORACLE是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全,数据库管理系统配置了良好的安全机制。 2.1 ORACLE数据库安全策略 建立系统级的安全保证 系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。ORACLE系统特权有80多种。 建立对象级的安全保证 对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。 建立用户级的安全保证 用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。 2.2 用户管理 ORACLE用户管理的内容主要包括用户的建立、修改和删除用户的建立

2.3系统特权管理与控制 ORACLE 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。 授予系统特权 回收系统特权 显示已被授予的系统特权(某用户的系统级特权) 2.4 对象特权管理与控制 ORACLE对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。 授予对象特权

//级联授权 回收对象特权 显示已被授予的全部对象特权 2.5 角色的管理 ORACLE的角色是命名的相关特权组(包括系统特权与对象特权),ORACLE用它来简化特权管理,可把它授予用户或其它角色。 ORACLE数据库系统预先定义了CONNECT 、RESOURCE、 DBA、 EXP_FULL_DATABASE、IMP_FULL_DATABASE五个角色。CONNECT具有创建表、视图、序列等特权;RESOURCE具有创建过程、触发器、表、序列等特权、DBA具有全部系统特权;EXP_FULL_DATABASE、 IMP_FULL_DATABASE具有卸出与装入数据库的特权。 通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。 授予用户角色

Oracle中创建、修改、删除序列

Oracle中创建、修改、删除序列 ORACLE没有象SQL SERVER中一样的自增加字段,要实现只 能通过SEQUENCE来实现。 1、创建序列语法:(需要CREATE SEQUENCE系统权限) CREATE SEQUENCE序列名 [INCREMENT BY n] ---用于定义序列的步长。 如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的。 [START WITH n] ---定义序列的初始值(即产生的第一个值),默认为1。 [{MAXVALUE/MINVALUE n|NOMAXVALUE}] ---定义序列生成器能产生的最大值。 选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增 序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是 -1。 MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是 默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生 的最小值是?10的26次方;对于递增序列,最小值是1。 [{CYCLE|NOCYCLE}] ---表示当序列生成器的值达到限制值后是否循环。 CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最 小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值 就会发生错误。 [{CACHE n|NOCACHE}]; ---CACHE(缓冲)定义存放序列的内存块的大小,默认为20。 NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。

2、修改序列语法: ALTER SEQUENCE 序列名 [INCREMENT BY n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; *不能修改序列的初始值 3、删除序列语法: DROP SEQUENCE 序列名;

oracle主键自动增长序列

select * from (select e.*,ROWNUM rn from (select * from emp order by empno) e) where rn between 1 and 10; select * from (select e.*,ROWNUM rn from (select * from emp order by empno) e where ROWNUM<=10) where rn>=1; 首先,你要有一张表! CREA TE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME V ARCHAR(25), PHONE V ARCHAR(10), ADDRESS V ARCHAR(50) ); 然后,你需要一个自定义的sequence CREA TE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXV ALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区 以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,假如你设置了最大值那么你可以用cycle 会使seq到最大之后循环.对于nocache顺便说一下假如你给出了cache值那么系统将自动读取你的cache值大小个seq,这样在反复操作时会加快运行速度,但假如遭遇意外情况如当机了或Oracle死了,则下次取出的seq值将和上次的不连贯.(假如连不连贯无所谓建议用cache,因为时间就是金钱呀!跑题了!) 书接上文,你只有了表和序列还不够,还需要一个触发器来执行它!代码如下: CREA TE TRIGGER "触发器名称" BEFORE INSERT ON example FOR EACH ROW WHEN (new.id is null) begin select emp_sequence.nextval into: new.id from dual; end; 打完收工!下面你就试试插入数据吧! INSERT INTO example(Name,phone,address) V alues('Cao','56498543','Heibei');

Oracle授予用户权限的一个实例

本文将从用户创建讲起,特别讲述Oracle授予用户权限的一个实例,希望对大家了解Oracle授予用户权限有所帮助。 这两天在测数据库同步软件的时候,需要在Oracle里创建一个用户名和密码均为SYSDA TA的用户,找了找资料,创建成功,现将Oracle中用户的创建和授予命令摘录下来: 1、Linux 下Oracle的启动 以Oracle身份登录 启动lsnrctl start 登录sqplus /nolog 连接数据库connect/assysdba 启动数据库startup 关闭数据库shutdown immediate 2、在数据中创建用户名 启动数据库后创建用户名 连接超级用户connect system/admin system 系统用户名字admin 密码 创建用户名字create user SYSDA TA identified by admin 用户名:SYSDA TA密码:admin 可以写Default tablespace user//指定存储对象使用的默认空间表默认是system Temporary tablespace temp; //保存临时对象所使用的空间表默认是system 上面的俩行,可以写空间表为user临时为temp;不写就默认 3、添加用户的权限 Grant是Oracle授予用户权限的如: Grant create session to SYSDA TA;//授予SYSDA TA连接数据的权限 系统权限如下: 系统特权允许执行的操作 Create session连接数据库 Create sequence创建序列 Create synonym创建同名对象 Create table创建表 Create any table创建任何模式的表 Drop table删除表 Create procedure创建存储过程 Execute any procedure执行任何模式的存储过程 Create user创建用户 Create view创建视图 Drop user删除用户 Drop any table删除任何模式的表 4、向用户授予系统特权 Grant execute any procedure toSYSDA TA with admin option 此句意思为为sha用户创建系统特权并且可以用SYSDA TA为别的用户授予权限 连接SYSDA TA用户connect SYSDA TA/admin 可以创建别的用户

相关主题