1、ORACEL经常使用操做linux
一、解锁帐户:ALTER USER username ACCOUNT UNLOCK;sql
二、查看数据库字符集:SELECT USERENV ('language') FROM DUAL; 数据库
三、建立表空间:create tablespace cdj_userpace1 datafile '/usr/oracle/oradata/cdj/userpace1.dbf' size 500M;windows
四、建立数据库用户:create user 用户名 identified by 密码 default tablespace 表空间;服务器
五、给用户受权:grant connect,resource to 用户名;网络
六、删除数据库用户:drop user 用户名 cascade; // 加上cascade能够将用户建立的东西所有一块儿删除session
七、完整启动数据库三连:lsnrctl start; sqlplus / as sysdba; startup; 数据结构
八、完整关闭数据库三连:sqlplus / as sysdba; shutdown; lsnrctl stop;架构
九、查看链接当前数据库的应用:select a.osuser,a.process,a.machine,a.port,a.program,a.sql_hash_value,a.sql_id from v$session a where a.username='数据库用户';oracle
------------------------
一、时间类型操做
select to_char(current_timestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual;
select to_timestamp('2012-02-03 10:29:46.453234','yyyy-mm-dd hh24:mi:ss.ff6') from dual;
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff6') from dual;
select cast(sysdate as timestamp) from dual;
select to_date(to_char(add_months(sysdate,-2)+1,'yyyy-mm-dd'),'yyyy-mm-dd') from dual ; --上月第一天
select next_day(sysdate, '星期五') from dual;--下个周五
select next_day(sysdate, 6) from dual;--下个周五, 周日为1
select LAST_DAY(sysdate) from dual;--当月最后一天
select add_months(sysdate,1) last_month,add_months(sysdate,12) last_year from dual;--下一月,下一年
2、数据库名、数据库实例名、数据库域名、全局数据库名、数据库服务名的区别和联系
一、数据库名就是一个数据库的标识,就像人的身份证号同样。若是一台机器上装了多个数据库,那么每个数据库都有一个数据库名。
数据库名是在安装数据库、建立新的数据库、建立数据库控制文件、修改数据结构、备份与恢复数据库时都须要使用到的。
查询当前数据库名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看参数文件。
二、数据库实例名是用于和操做系统进行联系的标识,就是说数据库和操做系统之间交互用的是数据库实例名。
数据库名和实例名能够相同也能够不一样。
在通常状况下,数据库名和实例名是一对一的关系,但若是在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在参数文件中查询。
数据库实例名与ORACLE_SID
虽然二者都表是oracle实例,但二者是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操做系统的环境变量。ORACLD_SID用于与操做系统交互,也就是说,从操做系统的角度访问实例名,必须经过ORACLE_SID。且ORACLE_SID必须与instance_name的值一致,不然,你将会收到一个错误。
三、数据库域名,在分布工数据库系统中,不一样版本的数据库服务器之间,不论运行的操做系统是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
五、数据库服务名,从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。数据库与客户端的链接字符串使用数据库服务名。以前用的是ORACLE_SID,即数据库实例名。数据库服务名能够与数据库实例名一致,也能够不一致。能够配置多个服务名链接同一个数据库,至关因而给实例名起了多个“别名”给不一样的客户端程序使用。
查询数据库服务名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在参数文件中查询。
综上所述,为了便于记忆,能够理解为,数据库名/全局数据库名是数据库系统内部的称呼,数据库实例名是介绍给操做系统认识的,数据库服务名是介绍给操做系统上的客户程序认识的。
各个名字在主要配置文件中的使用举例以下:
listener.ora文件配置
SID_LIST_LISTENER = //配置文件中必需要要有SID_LIST_LISTENER,不然启动监听时会提示监听程序不支持服务。
(SID_LIST =
(SID_DESC=
(GLOBAL_DBNAME = 全局数据库名)
(ORACLE_HOME =ORACLE_HOME环境变量设置的位置)
(SID_NAME = 数据库实例名)
)
)
监听名称 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 端口))
)
)
tnsnames.ora文件配置
数据库服务名 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip地址)(PORT = 端口)) //注意:这里的IP地址若是写成192.168.*.*等局域网IP时,必须联网,sqlplus才能正常链接数据库。 若无网络,必须写成127.0.0.1
)
(CONNECT_DATA =
(SERVICE_NAME = 数据库服务名)
)
)
两个配置文件都是放在$ORACLE_HOME\network\admin目录下。
3、使用sqlplus能够用sysdba用户无密码登陆的缘由
命令:sqlplus / as sysdba 便可登录dba权限的用户,缘由在于${ORACLE_HOME}/network/admin/sqlnet.ora中设置了“以操做系统认证”的方式登录数据库。即当前的系统用户位于dba的用户组中,则能够以这种方式登录。 目前通常刚装好的oracle数据库都是这种认证方式。
SQLNET.AUTHENTICATION_SERVICES= (NTS) // NTS表明操做系统认证,改为none, 则表明改为密码认证
4、windows/linux下程序链接ORACLE须要的东西。
一、windows下:oci.h 和 oci.dll或oci.lib
二、unix/linux下:${ORACLE_HOME}/include下的头文件,以及libclntsh.so和libnnz11.so
oracle\include\nzerror.h ......\.......\nzt.h ......\.......\occi.h ......\.......\occiAQ.h ......\.......\occiCommon.h ......\.......\occiControl.h ......\.......\occiData.h ......\.......\occiObjects.h ......\.......\oci.h ......\.......\oci1.h ......\.......\oci8dp.h ......\.......\ociap.h ......\.......\ociapr.h ......\.......\ocidef.h ......\.......\ocidem.h ......\.......\ocidfn.h ......\.......\ociextp.h ......\.......\ocikpr.h ......\.......\ocixml.h ......\.......\ocixmldb.h ......\.......\ocixstream.h ......\.......\odci.h ......\.......\oratypes.h ......\.......\ori.h ......\.......\orid.h ......\.......\orl.h ......\.......\oro.h ......\.......\ort.h ......\.......\xa.h