Constraint 主键
建立主键时忘记给主键起名字alter table test add primary key(id)--建立有名称的主键alter table test add constraint pk_id primary key(id)而后想删除主键,alter table test drop constraint PK_name却不知道主键名称。查询表中的主键select * from user_constraints where table_name='test'其中Contraints_type列内容解析如下...[@more@]sDBA_constraints.CONSTRAINT_TYPE/User_Constraints:C: Check ,On TableO: Read Only, On ViewP: Primary Key R: FK(Foreign Key, Referential Integrity)U: Unique KeyV: Check Option,
Orapwd
口令文件一般存放在dbs(unix/linux)或者database(win)目录下,叫做pwdsid.ora口令文件用于记录拥有sysdba/sysoper权限的用户名和密码创建语法:orapwd file=pwdsid.ora password=mima entries=10 (UNIX下没有.ora后缀)察看口令文件内容的方法:select * from v$pwfile_users;show parameter remote_login_passwordfile设定为EXCLUSIVE,则一个实例专用;SHARE则可以多个实例共享(用于OPS/RAC环境);NONE则不启用口令文件,此时任何sysdba/sysoper都无法连接进来。alter system set remote_login_passwordfile=none scope=spfilesqln
EM——备份
环境:windows+oracle10g使用EM备份数据库->维护->调度备份设置备份策略与目标后 输入主机身份证明:用户名,密码出现如下错误....[@more@]错误 - 以用户 liuxin 的身份连接 主机 失败: ERROR: Wrong password for user--===解决方案如下控制面板->管理工具->本地安全策略->作为批处理作业登陆 在这里添加要执行备份操作的用户再次测试备份 通过验证
ORACLE GLOBAL
区别nls_database_parameters与v$nls_parameters实验1:(测试于PL/SQL Develper)先看看v$nls_parameters....[@more@]select * from v$nls_parameters1 NLS_LANGUAGE SIMPLIFIED CHINESE2 NLS_TERRITORY CHINA3 NLS_CURRENCY ¥4 NLS_ISO_CURRENCY CHINA5 NLS_NUMERIC_CHARACTERS .,6 NLS_CALENDAR GREGORIAN7 NLS_DATE_FORMAT DD-MON-RR8 NLS_DATE_LANGUAGE SIMPLIFIED CHINESE9 NLS_CHARACTERSET ZHS16GBK10 NLS_SORT BINARY11 NLS_TIME_FORMAT HH.MI.SSXFF AM12 NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM13 NLS_TIME_TZ_FORMAT HH
Questions——无法shutdown
当shutdown immediate是出现如下情况SQL> shutdown immediate_ 无法关闭数据库,等待许久仍然无法关闭可以选择如下办法:另开一个窗口[@more@]C:>sqlplus / as sysdbaSQL*Plus: Release 10.1.0.2.0 - Production on 星期二 9月 8 07:48:18Copyright (c) 1982, 2004, Oracle. All rights reserved.已连接。SQL> shutdown abortORACLE 例程已经关闭。SQL>再返回刚才的窗口 已经变化:SQL> shutdown immediateORA-03113: 通信通道的文件结束--==至此已经关闭数据库 由于shutdown abort数据库 重新开启数据库时会自动进行实例
Questions——无法启动EM
很久不用EM 后来同学在学习ORACLE的时候问我关于在EM中备份数据库的问题 于是想自己试验一下 可发现服务完全无法启动 后来想起来曾经修改过计算机名 可能是这个导致了EM无法启动 --===解决问题:重新配置服务...[@more@]c:>emca EMCA 开始于 Tue Sep 08 07:34:34 CST 2009输入以下有关要配置的数据库的信息监听程序端口号: 1521数据库 SID: orcl服务名: orcl通知的电子邮件地址:通知的电子邮件网关:dbsnmp 口令:sysman 口令:sys 口令:-----------------------------------------------------------------已指定以下设置数据库 ORACLE_
Questions——无法以OS认证方式登录
环境:windows +oracle10g 问题:无法以OS验证方式登录 朋友在学习ORACLE时问我的一个问题,他的操作系统是windows,切换用户后使用语句...[@more@]sqlplus / as sysdba 无法登入数据库 但以sqlplus sys/system as sysdba 却可以正常登入这里第一条sqlplus / as sysdba 使用的是OS验证 默认登入数据库用户SYS 第二条语句已经验证以SYS用户可以登入数据库 所以可以断定是操作系统验证问题 --=== 解决问题 控制面板->管理工具->计算机管理->ORA_DBA 在打开的对话框中加入当前操作系统用户 再次验证可以登录--==== 默认启用OS认证的方
Questions——无法删除SYS用户下表的列
朋友刚开始学习ORACLE 做练习的时候 以SYS用户创建了一个表 并插入了数据 之后想要修改表结构 删除其中一列 结果提示 无法删除属于 SYS 的表中的列...[@more@]这个问题我也做了如下实验---------------------------------------------C:>sqlplus / as sysdbaSQL*Plus: Release 10.1.0.2.0 - ProductiCopyright (c) 1982, 2004, Oracle. All连接到:Oracle Database 10g Enterprise EditionWith the Partitioning, OLAP and Data MiSQL> create table abc (a int,b int);表已创建。SQL> insert into abc values(1,10);已创建 1 行。
基础开始——undo
undo 使用DML语句对数据进行了修改 oracle将修改前的数据保存至undo segment中 ,undo segment保存于undo tablespace中,未使用commit提交事务前 使用rollback可回滚这部分数据 show parameter undoundo参数...[@more@]①undo_management 值为auto时 在空间不足时自动创建undo段②undo_retention 该项值为在事务提交后存放在undo段内的数据仍将保存多少秒③undo_tablespace 当前使用的undo表空间ORA-01555 快照过旧 解决方案:扩大undo表空间1.create undo tablespace undotbs2 datafile ' g:/undotbs2.dbf ' size 10m创建一个undo表空间
基础开始——数据库运行模式 专用&共享
数据库运行模式 专用服务器模式 共享服务器模式...[@more@]专用服务器模式每个session都有一个专用的进程为其服务 多用于只有少数客户端连接服务器 或OLTP(联机事务处理系统)专用服务器使用的游标、用户信息、栈空间都来自于PGA共享服务器模式也叫做多线程服务器模式 多个用户进程使用同一个服务器进程 进入队列处理 多用于多客户连接服务器共享服务器使用的游标、用户信息 内存来自于SGA(内的大池) 栈则在PGA中①select * from v$queue查看队列②select * from v$circuit查看哪些进程在服务③select * from v#shared_server_monitor查
基础开始——审计aduit
审计 audit用于记录用户对数据库的操作语句审计(statement audit)、权限审计(privilege audit)、对象审计(object audit)[@more@]审计的参数show parameter audit ①audit_trail = os / db /noneos:审计记录存于操作系统中db:审计记录存于数据库的相关表中 none: 不做审计②audit_sys_operations = true / false(默认)当为true时,sys用户的操作将被记录,windowns平台记录于事件管理中,linux / unix平台记录与audit_file_dest参数指定的文件中1.select * from aud$查询审计内容 包括审计sid 审计用户 动作号 时间等信息2.select
基础开始——pl/sql
pl/sql 对SQL(结构化查询语言)的过程语言扩展由三部分组成:声明declare、执行begin、异常处理exception(可选)存储程序类型:函数、过程、包、触发器...[@more@]dbms_out_put.putline(***)pl/sql输出函数pl/sql解析函数(使用alter system set *** 修改参数):①pl/sql_code_type = interpreted / nativeinterpreted:执行plsql速度快、无debug功能native:有debug功能②pl/sql_debug = ture / false当设置为ture时 忽略code_type设置 使用debug功能③pl/sql_optimize_level = 1 / 21:编译快 多用于开发2:运行快 多用于管理set server
基础开始——权限
权限(system privilege系统权限、object privilege对象权限)系统权限:A给予B某系统权限,B给予C该系统权限,当B被收回此系统权限时,C不会被收回该系统权限。对象权限:A给予B某对象权限,B给予C该对象权限,当B被收回此对象权限时,C同时被收回该对象权限。[@more@]1.select * from dba_sys_privs where grantee='TEST'查询用户TSET所拥有的系统权限2.select * from dba_tab_privs where grantee='TEST'查询用户TEST所拥有的对象权限3.grant create session to abc授予用户abc连接数据库的系统权限4.grant select on aaa to test授予用
OTHERS——PROFILE
profile 用于用户的数据库资源限制... [@more@]1.select * from dba_profiles查询profile参数2.alter user test profile pro_test修改用户test使用pro_test设置下图为PLSQL_Develper截图 可直接修改 很多内容
基础开始——用户
1.select * from dba_users查询用户状态 使用的表空间 创建日期 使用的profile等信息...[@more@]2.create user test identified by mima default tablespace abc temporary tablespace tmp创建用户test密码为mima默认使用表空间abc 使用临时表空间tmp3.alter user test quota 10m on users修改用户test 可以使用users表空间的10M空间4.alter user test account lock/unlock修改用户test 锁定/解锁5.alter user test password expire修改用户test 使其密码失效 在下次登录时需修改密码6.select distinct sid from v$mystat查询当前会话的se
基础开始——表空间
表空间tablespace (permanent永久 undo重做 temp临时)逻辑结构 表空间tablespace 段segment 区间extent 块block[@more@]1.select * from dba_tablespace查询表空间名 使用情况 状态 表空间管理模式等信息2.select * from dba_data_files查询数据文件位置 文件号 对应的表空间名 大小 等使用情况 及状态3.create tablespace abc datafile 'g:abc.dbf ' size 3m创建一个表空间abc及数据文件 大小为3m4.alter database datafile 5 resize 10m修改5号数据文件(FILE_ID) 大小为10m5.alter database datafile 5 autoextend on next 2m maxsi
基础开始——shutdown
shutdownA:abort 不可建连接 不等会话 不等事务(相当于断电)容易损坏数据库 未提交的事务再重启数据库时回滚 容易出现错误 要求实例恢复(重启至OPEN即自动进行了实例恢复)I:immediate 不可建连接 不等会话 不等事务 (最优方法)事务当即回滚 所以相对于abort 关闭数据库的速度缓慢 T:transactional 不可建连接 不等会话 等待事务N:normal 不可建连接 等会话 等事务[@more@]
基础开始——数据库的启动状态
数据库的状态nomount 非装载mount 装载open 打开 [startup nomount] shutdown->nomount 使用了spfile.ora 如果没有spfile 则使用init.ora[alter database mount]nomount->mount 使用了controlfile[alter database open]mount->open 使用了datafile和logfile-------------------------------------------------当数据库从open状态使用[alter database close] 进入mount状态时 无法再使用[alter database open] 使数据库打开至open状态 需使用[shutdown] 关闭数据库后 再重新启动 方可进入OPEN状态[@more@]
基础开始——windows/Oracle的卸载
1.删除环境变量2.删除注册表中:HKEY_LOCAL_MECHINESOFTWAREORACLEHKEY_LOCAL_MECHINESYSTEMCurrentControlSetServicesOracle3.删除Oracle文件目录[@more@]