一:数据库启动的步骤:
ORACLE数据库分为数据库实例和数据库文件两部分,实例是一块内存区域,加些后台进程,内存区域就是平时说的数据缓存,共享池等,后台进程就是如checkpoint,log writer,dbwriter等,数据文件和SQL SERVER的在概念上没啥两样,这样数据文件,内存,进程就构成了一个数据库.
1:首先检测参数文件init(sid).ora,就是初始化参数文件,从参数文件获取内存配置参数,数据库名称等信息,进行实例启动,这样内存就开辟了,进程也自己启动了,这个状态是nomount.其中Oracle数据库在启动时,首先查找的是orapw<sid>的口令文件,如果该文件不存在,则开始查找,orapw的口令文件。
2:根据上步的参数文件信息,从参数文件获取控制文件的地址,加载他,获取数据库的物理文件的信息,但不会检查数据文件是否存在,这个称为mount,
3:读取数据文件,打开数据库,执行些恢复检查点.这个状态就是open.
二:更改实例名步骤:
1:更改原来实例参数文件init(sid).ora,更改参数配置中实例名为新的实例名
*.instance_name='gaogao1'
2:更改原来参数文件为新的含有新的实例名的参数文件:
如mv initgaogao.ora initgaogao1.ora
2:建立新的关于新的实例的密码文件:
orapwd file=orapw(sid) password=密码 entries=5
三:关于数据库启动中参数文件的问题.
1:一般数据库在打开实例的时候,oracle读取参数文件的过程是:数据库首先会找SPFILE(sid).ora,如果找不到,才去找INIT(sid).ora,在上面都找不到才会去找init.ora.
2:一般在在创建数据库完成以后系统会生成spfile(sid).ora这个文件。如果你想改变SGA的大小。那就要手动建立PFILE才可以对SGA调整。因为spfile(sid).ora是二进值文件。无法用文本编辑器。
3:CREATE PFILE FROM SPFILE; 这样就可以在dbs目录下自动创建一个init(sid).ora文件.
4:如果你想用PFILE文件启动,你可以在启动时指定文件的路径,或把spfile(sid).ora改名字,就可以了.
四:把用户对象从一个表空间gaojf导入到另外一个表空间gaojf1步骤:
1:REVOKE UNLIMITED TABLESPACE FROM "GAOJF1";#在gaojf1的系统权限中取消掉 unlimited tablespace
2:ALTER USER "GAOJF1" QUOTA 20 M ON CICRO1; 给用户gaojf1资源限额20m
或者是
ALTER USER "GAOJF1" QUOTA UNLIMITED ON CICRO1;给用户gaojf1资源限额为无限制使用.(非无)
3:然后用导出语句:
imp gaojf1/gaojf1 file=cicrotablestest.dmp fromuser=gaojf touser=gaojf1 ignore=y tablespaces=cicro1;
或者
imp gaojf1/gaojf1 file=cicrotablestest.dmp full=y,ignore=y;
ok了,看看吧!
五:关于表空间的使用
alter user hr quota 200m on test1; 指定hr用户在表空间test1的使用限额时200兆.
alter user hr quota 0 on example;指定hr在表空间example的使用限额为0,即没有指定限额(无).
alter user hr quota unlimited on test1; 指定hr在表空间test1的使用限额为无限制(非无,是无限制使用).
Only one mode (TABLES, FROMUSER, or FULL) can be specified #即为在导入的时候,只能从tables,fromuser,full中指定一种模式.
imp sales/sales@test1 fromuser=zjj touser=sales rows=n ignore=n commit=y TABLESPACES=test file=D:\exp\zjj.dmp log=d:\exp\zjjimp01.log #倒入数据的格式
imp hr/hr file=e:\hr.dmp log=e:\hrimp.log fromuser=hr touser=test1
alter table (tablename) move tablespace 表空间名 #把某个表移动到另外一个表空间.
查看导入后表的表空间
select * from user_all_tables where table_name='表名'
查看表空间的使用情况
select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name;
六:更改sys和sysem的密码
Alter user sys identified by 新的密码
Alter user system identified by 新的密码
www.ixdba.net
七:更改数据库为归档模式:
通过v$database,查看数据库是否在Archive模式下:
SQL> select log_mode from v$database;
或者通过
SQL> archive log list;
如果不是Archive模式,则设定数据库运行于归档模式下:
一:数据库用pfile文件时的修改方法。
(1):SQL>shutdown immediate
SQL>startup mount
SQL> alter database archivelog;
SQL> alter database open;
如果Automaticarchival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如: 正常shutdown数据库,在参数文件中init(sid).ora中加入如下参数
SQL>shutdown immediate
修改init(sid).ora:
LOG_ARCHIVE_START=TRUE
log_archive_dest = /opt/oracle/product/9.2.0/dbs/archgaogao (归档日值存放位置可以自己定义)
log_archive_format = "T%TS%S.ARC" (存档日志文件的文件名格式)
二:数据库用的时二进制spfile时的修改方法,即以命令方式操作。
(1):SQL> alter database archivelog; (设置为归档模式)
设置成自动归档:(重新启动数据库生效)
(2):SQL> alter system set log_archive_start = true scope=spfile;
设置归档路径:(重新启动数据库生效)
(3):SQL>alter system set log_archive_dest ='/opt/oracle/product/9.2.0/dbs/archexitgogo' scope=spfile;
重新启动数据库:
SQL>startup force
然后,重新启动数据库,此时Oracle数据库将以自动归档的方式工作在Archive模式下。其中参数LOG_ARCHIVE_DEST是指定的归档日志文件的路径,建议与Oracle数据库文件存在不同的硬盘,一方面减少磁盘I/O竞争,另外一方面也可以避免数据库文件所在硬盘毁坏之后的文件丢失。归档路径也可以直接指定为磁带等其它物理存储设备,但可能要考虑读写速度、可写条件和性能等因素。
如果数据库正在运行中,不能即刻重起,要设置其为自动归档模式,则做如下操作:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;
如要设置其为非自动归档模式(取消自动归档),则:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG STOP;
但如果数据库重起后,该语句修改的结果就失效了,自动归档的设置还是按照系统参数文件中的LOG_ARCHIVE_START的值来设置。
手动归档:ALTER SYSTEM ARCHIVE LOG ALL;
将这个时间点的redo logs归档
SVRMGRL> archive log all;
注意:当数据库处在ARCHIVE模式下时,一定要保证指定的归档路径可写,否则数据库就会挂起,直到能够归档所有归档信息后才可以使用.
八:如何通过控制文件查看数据文件,日值文件所在的位置
看一下controlfile不就知道了
[oracle@localhost cicro]$ strings control01.ctl
]\[Z
CICRO
!CICRO
cicro
cicro
"aoE
"aoE
/opt/oracle/oradata/cicro/redo03.log
/opt/oracle/oradata/cicro/redo02.log
/opt/oracle/oradata/cicro/redo01.log
/opt/oracle/oradata/cicro/xdb01.dbf
/opt/oracle/oradata/cicro/users01.dbf
/opt/oracle/oradata/cicro/undotbs01.dbf
/opt/oracle/oradata/cicro/tools01.dbf
/opt/oracle/oradata/cicro/system01.dbf
/opt/oracle/oradata/cicro/odm01.dbf
/opt/oracle/oradata/cicro/indx01.dbf
/opt/oracle/oradata/cicro/example01.dbf
/opt/oracle/oradata/cicro/drsys01.dbf
/opt/oracle/oradata/cicro/cwmlite01.dbf
/opt/oracle/oradata/cicro/temp01.dbf
/opt/oracle/oradata/cicro/sxzjdb.dbf
/opt/oracle/oradata/cicro/redo03.log
/opt/oracle/oradata/cicro/redo02.log
/opt/oracle/oradata/cicro/redo01.log
/opt/oracle/oradata/cicro/xdb01.dbf
/opt/oracle/oradata/cicro/users01.dbf
/opt/oracle/oradata/cicro/undotbs01.dbf
/opt/oracle/oradata/cicro/tools01.dbf
/opt/oracle/oradata/cicro/system01.dbf
/opt/oracle/oradata/cicro/odm01.dbf
/opt/oracle/oradata/cicro/indx01.dbf
/opt/oracle/oradata/cicro/example01.dbf
/opt/oracle/oradata/cicro/drsys01.dbf
/opt/oracle/oradata/cicro/cwmlite01.dbf
/opt/oracle/oradata/cicro/temp01.dbf
/opt/oracle/oradata/cicro/sxzjdb.dbf
CWMLITE
DRSYS
EXAMPLE
INDX
SYSTEM
TOOLS
UNDOTBS1
USERS
TEMP
SXZJ
CWMLITE
DRSYS
EXAMPLE
INDX
SYSTEM
TOOLS
UNDOTBS1
USERS
TEMP
SXZJ
………………………….
九、数据库的扩充
1、增加一个表空间
当我们要开发某个大型的应用程序时,最好建立一个相应的表空间。
命令示例:
SVRMGR>create tablespace application datafile
‘/usr/oracle/dbs/application.dbf’ size 3M
针对具体情况增加回滚和临时表空间
命令示例:
SVRMGR>create rollback tablespace rbs8 datafile
‘/usr/oracle/dbs/rbs8.dbf’ size 4M
SVRMGR>create tablespace tmp8 datafile
‘/usr/oracle/dbs/tmp8.dbf’ size 550K
回滚和临时表空间用完后,可删除或使它offline
SVRMGR>drop tablespace rbs8;
SVRMGR>drop tablespace tmp8;
SVRMGR>alter tablespace rbs offline;
SVRMGR>alter tablespace tmp8 offline;
建立回滚段举例:
SVRMGR>create rollback segment rs11 tablespace tmp8 ;
SVRMGR>alter rollback segment rs11 online;
SVRMGR>alter rollback segment rs11 offline;
2、增加某个表空间的大小
当一个表空间的大小不能满足工作需要时,应该扩充表空间。
举例:
SVRMGR>alter tablespace system
add datafile ‘/usr/oracle/dbs/sys338.dbf’ size 3M;
十、增加oracle的用户,并给用户授权
1、增加oracle的用户, 并给用户授权
举例:
SVRMGR>create user newuser identified by userpasswd default tablespace application temporary tablespace tmp8;
SVRMGR>grant connect to newuser;
SVRMGR>grant resource to newuser;
SVRMGR>grant update on emp to newuser;
2、增加oracle的角色
oracle的缺省角色有connect、resource、dba。它是一组可以分配给其它role
或用户的权限总和,connect 有8个权限,resource 有5个权限,dba有77
个权限。给一般连接用户赋connect,给一般编程人员赋connect加resource,
只有数据库管理员才有dba的权限。
①创建一个角色
SVRMGR>create role newrole identified by rolepasswd;
②给角色赋权限
SVRMGR>grant select on all table to newrolle;
SVRMGR>grant connect to newrole with admin option;
3、中断用户同oracle的连接
当oracle数据库要关机或某个用户占有的大量的资源需要被释放时,dba
需中断用户同oracle的连接。
①、SVRMGR>select sid,serial#,username from v$session;
②、SVRMGR>alter system kill session ‘interger1,interger2’;
interger1,interger2分别对应于sid和serial#
十一、SQL的语法
1) 连接号:||
2) 把两个字符连接起来
eg:select game_card_type_id||name from game_card_type;
3) order by desc(降序)
order by asc(升序)
4) like ‘_a%’ _表示一个字符。%表示多少字符