oracle常用命令大全
- 格式:docx
- 大小:30.75 KB
- 文档页数:15
第一章:日志管理1.forcing log switchessql> alter system switch logfile;2.forcing checkpointssql> alter system checkpoint;3.adding online redo log groupssql> alter database add logfile [group 4]sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 1m;4.adding online redo log memberssql> alter database add logfile membersql> '/disk3/log1b.rdo' to group 1,sql> '/disk4/log2b.rdo' to group 2;5.changes the name of the online redo logfilesql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log' sql> to 'c:/oracle/oradata/redo01.log';6.drop online redo log groupssql> alter database drop logfile group 3;7.drop online redo log memberssql> alter database drop logfile member 'c:/oracle/oradata/redo01.log';8.clearing online redo log filessql> alter database clear [unarchived] logfile 'c:/oracle/log2a.rdo';ing logminer analyzing redo logfilesa. in the init.ora specify utl_file_dir = ' 'b. sql> executedbms_logmnr_d.build('oradb.ora','c:\oracle\oradb\log');c. sql> executedbms_logmnr_add_logfile('c:\oracle\oradata\oradb\redo01.log',sql> dbms_logmnr.new);d. sql> executedbms_logmnr.add_logfile('c:\oracle\oradata\oradb\redo02.log',sql> dbms_logmnr.addfile);e. sql> executedbms_logmnr.start_logmnr(dictfilename=>'c:\oracle\oradb\log\oradb.ora ');f. sql> select * fromv$logmnr_contents(v$logmnr_dictionary,v$logmnr_parameterssql> v$logmnr_logs);g. sql> execute dbms_logmnr.end_logmnr;第二章:表空间管理1.create tablespacessql> create tablespace tablespace_name datafile'c:\oracle\oradata\file1.dbf' size 100m,sql> 'c:\oracle\oradata\file2.dbf' size 100m minimum extent 550k [logging/nologging]sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0)sql> [online/offline] [permanent/temporary] [extent_management_clause]2.locally managed tablespacesql> create tablespace user_data datafile'c:\oracle\oradata\user_data01.dbf'sql> size 500m extent management local uniform size 10m;3.temporary tablespacesql> create temporary tablespace temp tempfile'c:\oracle\oradata\temp01.dbf'sql> size 500m extent management local uniform size 10m;4.change the storage settingsql> alter tablespace app_data minimum extent 2m;sql> alter tablespace app_data default storage(initial 2m next 2m maxextents 999);5.taking tablespace offline or onlinesql> alter tablespace app_data offline;sql> alter tablespace app_data online;6.read_only tablespacesql> alter tablespace app_data read only|write;7.droping tablespacesql> drop tablespace app_data including contents;8.enableing automatic extension of data filessql> alter tablespace app_data add datafile'c:\oracle\oradata\app_data01.dbf'size 200msql> autoextend on next 10m maxsize 500m;9.change the size fo data files manuallysql> alter database datafile 'c:\oracle\oradata\app_data.dbf'resize 200m;10.Moving data files: alter tablespacesql> alter tablespace app_data rename datafile'c:\oracle\oradata\app_data.dbf'sql> to 'c:\oracle\app_data.dbf';11.moving data files:alter databasesql> alter database rename file 'c:\oracle\oradata\app_data.dbf'sql> to 'c:\oracle\app_data.dbf';第三章:表1.create a tablesql> create table table_name (column datatype,column datatype]....) sql> tablespace tablespace_name [pctfree integer] [pctused integer] sql> [initrans integer] [maxtrans integer]sql> storage(initial 200k next 200k pctincrease 0 maxextents 50)sql> [logging|nologging] [cache|nocache]2.copy an existing tablesql> create table table_name [logging|nologging] as subquery3.create temporary tablesql> create global temporary table xay_temp as select * from xay;on commit preserve rows/on commit delete rows4.pctfree = (average row size - initial row size) *100 /average row size pctused = 100-pctfree- (average row size*100/available data space)5.change storage and block utilization parametersql> alter table table_name pctfree=30 pctused=50 storage(next 500k sql> minextents 2 maxextents 100);6.manually allocating extentssql> alter table table_name allocate extent(size 500k datafile'c:/oracle/data.dbf');7.move tablespacesql> alter table employee move tablespace users;8.deallocate of unused spacesql> alter table table_name deallocate unused [keep integer]9.truncate a tablesql> truncate table table_name;10.drop a tablesql> drop table table_name [cascade constraints];11.drop a columnsql> alter table table_name drop column comments cascade constraints checkpoint 1000;alter table table_name drop columns continue;12.mark a column as unusedsql> alter table table_name set unused column comments cascade constraints;alter table table_name drop unused columns checkpoint 1000;alter table orders drop columns continue checkpoint 1000data_dictionary : dba_unused_col_tabs第四章:索引1.creating function-based indexessql> create index summit.item_quantity onsummit.item(quantity-quantity_shipped);2.create a B-tree indexsql> create [unique] index index_name on table_name(column,.. asc/desc) tablespacesql> tablespace_name [pctfree integer] [initrans integer] [maxtrans integer]sql> [logging | nologging] [nosort] storage(initial 200k next 200k pctincrease 0sql> maxextents 50);3.pctfree(index)=(maximum number of rows-initial number ofrows)*100/maximum number of rows4.creating reverse key indexessql> create unique index xay_id on xay(a) reverse pctfree 30storage(initial 200ksql> next 200k pctincrease 0 maxextents 50) tablespace indx;5.create bitmap indexsql> create bitmap index xay_id on xay(a) pctfree 30 storage( initial 200k next 200ksql> pctincrease 0 maxextents 50) tablespace indx;6.change storage parameter of indexsql> alter index xay_id storage (next 400k maxextents 100);7.allocating index spacesql> alter index xay_id allocate extent(size 200k datafile'c:/oracle/index.dbf');8.alter index xay_id deallocate unused;第五章:约束1.define constraints as immediate or deferredsql> alter session set constraint[s] = immediate/deferred/default;set constraint[s] constraint_name/all immediate/deferred;2. sql> drop table table_name cascade constraintssql> drop tablespace tablespace_name including contents cascade constraints3. define constraints while create a tablesql> create table xay(id number(7) constraint xay_id primary key deferrablesql> using index storage(initial 100k next 100k) tablespace indx);primary key/unique/references table(column)/check4.enable constraintssql> alter table xay enable novalidate constraint xay_id;5.enable constraintssql> alter table xay enable validate constraint xay_id;第六章:LOAD数据1.loading data using direct_load insertsql> insert /*+append */ into emp nologgingsql> select * from emp_old;2.parallel direct-load insertsql> alter session enable parallel dml;sql> insert /*+parallel(emp,2) */ into emp nologgingsql> select * from emp_old;ing sql*loadersql> sqlldr scott/tiger \sql> control = ulcase6.ctl \sql> log = ulcase6.log direct=true第七章:reorganizing dataing expoty$exp scott/tiger tables(dept,emp) file=c:\emp.dmp log=exp.log compress=n direct=ying import$imp scott/tiger tables(dept,emp) file=emp.dmp log=imp.log ignore=y3.transporting a tablespacesql>alter tablespace sales_ts read only;$exp sys/.. file=xay.dmp transport_tablespace=y tablespace=sales_tstriggers=n constraints=n$copy datafile$imp sys/.. file=xay.dmp transport_tablespace=ydatafiles=(/disk1/sles01.dbf,/disk2/sles02.dbf)sql> alter tablespace sales_ts read write;4.checking transport setsql> DBMS_tts.transport_set_check(ts_list=>'sales_ts' ..,incl_constraints=>true);在表transport_set_violations 中查看sql> dbms_tts.isselfcontained 为true 是,表示自包含第八章: managing password security and resources1.controlling account lock and passwordsql> alter user juncky identified by oracle account unlock;er_provided password functionsql> function_name(userid in varchar2(30),password in varchar2(30),old_password in varchar2(30)) return boolean3.create a profile : password settingsql> create profile grace_5 limit failed_login_attempts 3sql> password_lock_time unlimited password_life_time 30sql>password_reuse_time 30 password_verify_function verify_function sql> password_grace_time 5;4.altering a profilesql> alter profile default failed_login_attempts 3sql> password_life_time 60 password_grace_time 10;5.drop a profilesql> drop profile grace_5 [cascade];6.create a profile : resource limitsql> create profile developer_prof limit sessions_per_user 2sql> cpu_per_session 10000 idle_time 60 connect_time 480;7. view => resource_cost : alter resource costdba_Users,dba_profiles8. enable resource limitssql> alter system set resource_limit=true;第九章:Managing users1.create a user: database authenticationsql> create user juncky identified by oracle default tablespace users sql> temporary tablespace temp quota 10m on data password expire sql> [account lock|unlock] [profile profilename|default];2.change user quota on tablespacesql> alter user juncky quota 0 on users;3.drop a usersql> drop user juncky [cascade];4. monitor userview: dba_users , dba_ts_quotas第十章:managing privileges1.system privileges: view =>system_privilege_map ,dba_sys_privs,session_privs2.grant system privilegesql> grant create session,create table to managers;sql> grant create session to scott with admin option;with admin option can grant or revoke privilege from any user or role;3.sysdba and sysoper privileges:sysoper: startup,shutdown,alter database open|mount,alter database backup controlfile,alter tablespace begin/end backup,recover databasealter database archivelog,restricted sessionsysdba: sysoper privileges with admin option,create database,recover database until4.password file members: view:=> v$pwfile_users5.O7_dictionary_accessibility =true restriction access to view or tables in other schema6.revoke system privilegesql> revoke create table from karen;sql> revoke create session from scott;7.grant object privilegesql> grant execute on dbms_pipe to public;sql> grant update(first_name,salary) on employee to karen with grant option;8.display object privilege : view => dba_tab_privs, dba_col_privs9.revoke object privilegesql> revoke execute on dbms_pipe from scott [cascade constraints];10.audit record view :=> sys.aud$11. protecting the audit trailsql> audit delete on sys.aud$ by access;12.statement auditingsql> audit user;13.privilege auditingsql> audit select any table by summit by access;14.schema object auditingsql> audit lock on summit.employee by access whenever successful;15.view audit option : view=>all_def_audit_opts,dba_stmt_audit_opts,dba_priv_audit_opts,dba_obj_audit_opts16.view audit result: view=>dba_audit_trail,dba_audit_exists,dba_audit_object,dba_audit_session,dba_audit_statement第十一章: manager role1.create rolessql> create role sales_clerk;sql> create role hr_clerk identified by bonus;sql> create role hr_manager identified externally;2.modify rolesql> alter role sales_clerk identified by commission; sql> alter role hr_clerk identified externally;sql> alter role hr_manager not identified;3.assigning rolessql> grant sales_clerk to scott;sql> grant hr_clerk to hr_manager;sql> grant hr_manager to scott with admin option;4.establish default rolesql> alter user scott default role hr_clerk,sales_clerk; sql> alter user scott default role all;sql> alter user scott default role all except hr_clerk; sql> alter user scott default role none;5.enable and disable rolessql> set role hr_clerk;sql> set role sales_clerk identified by commission; sql> set role all except sales_clerk;sql> set role none;6.remove role from usersql> revoke sales_clerk from scott;sql> revoke hr_manager from public;7.remove rolesql> drop role hr_manager;8.display role informationview: =>dba_roles,dba_role_privs,role_role_privs,dba_sys_privs,role_sys_privs,role_tab_privs,session_roles第十二章: BACKUP and RECOVERY1.v$sga,v$instance,v$process,v$bgprocess,v$database,v$datafile,v$sgasta t2. Rman need set dbwr_IO_slaves or backup_tape_IO_slaves andlarge_pool_size3. Monitoring Parallel Rollback> v$fast_start_servers , v$fast_start_transactions4.perform a closed database backup (noarchivelog)> shutdown immediate> cp files /backup/> startup5.restore to a different location> connect system/manager as sysdba> startup mount> alter database rename file '/disk1/../user.dbf'to'/disk2/../user.dbf';> alter database open;6.recover syntax--recover a mounted database>recover database;>recover datafile '/disk1/data/df2.dbf';>alter database recover database;--recover an opened database>recover tablespace user_data;>recover datafile 2;>alter database recover datafile 2;7.how to apply redo log files automatically>set autorecovery on>recover automatic datafile 4;plete recovery:--method 1(mounted databae)>copy c:\backup\user.dbf c:\oradata\user.dbf>startup mount>recover datafile 'c:\oradata\user.dbf;>alter database open;--method 2(opened database,initially opened,not system or rollback datafile)>copy c:\backup\user.dbf c:\oradata\user.dbf (alter tablespace offline)>recover datafile 'c:\oradata\user.dbf' or>recover tablespace user_data;>alter database datafile 'c:\oradata\user.dbf' online or>alter tablespace user_data online;--method 3(opened database,initially closed not system or rollback datafile)>startup mount>alter database datafile 'c:\oradata\user.dbf' offline;>alter database open>copy c:\backup\user.dbf d:\oradata\user.dbf>alter database rename file 'c:\oradata\user.dbf'to'd:\oradata\user.dbf'>recover datafile 'e:\oradata\user.dbf' or recover tablespace user_data; >alter tablespace user_data online;--method 4(loss of data file with no backup and have all archive log) >alter tablespace user_data offline immediate;>alter database create datafile 'd:\oradata\user.dbf'as'c:\oradata\user.dbf''>recover tablespace user_data;>alter tablespace user_data online9.perform an open database backup> alter tablespace user_data begin backup;> copy files /backup/> alter database datafile '/c:/../data.dbf' end backup;> alter system switch logfile;10.backup a control file> alter database backup controlfile to 'control1.bkp';> alter database backup controlfile to trace;11.recovery (noarchivelog mode)> shutdown abort> cp files> startup12.recovery of file in backup mode>alter database datafile 2 end backup;13.clearing redo log file>alter database clear unarchived logfile group 1;>alter database clear unarchived logfile group 1 unrecoverable datafile;14.redo log recovery>alter database add logfile group 3 'c:\oradata\redo03.log'size 1000k; >alter database drop logfile group 1;>alter database open;or >cp c:\oradata\redo02.log' c:\oradata\redo01.log>alter database clear logfile 'c:\oradata\log01.log';。
Oracle常⽤SQL命令创建表空间1.创建默认表空间WLP_DATCREATE TABLESPACE "MYSPACE" DATAFILE'D:\oracle\oradata\orcl\data/WLP_DAT.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 32MLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;2.创建临时表空间WLP_TEMP(⽤于缓存,可以不建)ALTER TABLESPACE "TEMP" ADD TEMPFILE'D:\oracle\oradata\orcl\data/WLP_TEMP.dbf' SIZE 32m REUSE autoextend on next 32m;创建⽤户并授权1CREATE USER "WLPING" PROFILE "DEFAULT"2 IDENTIFIED BY "123456"3DEFAULT TABLESPACE "MYSPACE" //默认指定表空间4TEMPORARY TABLESPACE "TEMP" //指定缓存表空间5 ACCOUNT UNLOCK; //⽤户⾮锁定67GRANT EXECUTE ON dbms_comparison TO "WLPING";8GRANT UNLIMITED TABLESPACE TO "XIR_MD";9GRANT "CONNECT" TO "XIR_MD";10GRANT "RESOURCE" TO "XIR_MD";1112-- GRANT DBA TO XIR_MD;PROFILE:Oracle系统中的profile可以⽤来对⽤户所能使⽤的数据库资源进⾏限制,使⽤Create Profile命令创建⼀个Profile,⽤它来实现对数据库资源的限制使⽤,如果把该profile分配给⽤户,则该⽤户所能使⽤的数据库资源都在该profile的限制之内。
常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。
oracle查询实例命令以下是一些Oracle数据库中常用的查询实例命令示例:1.查询表的所有数据:SELECT * FROM table_name;2.查询指定列的数据:SELECT column1, column2, ... FROM table_name;3.查询满足特定条件的数据:SELECT * FROM table_name WHERE condition;4.对结果进行排序:SELECT * FROM table_name ORDER BY column_name [ASC|DESC];5.使用聚合函数进行数据统计:SELECT COUNT(*) FROM table_name; -- 统计行数SELECT SUM(column_name) FROM table_name; -- 求和SELECT AVG(column_name) FROM table_name; -- 平均值SELECT MAX(column_name) FROM table_name; -- 最大值SELECT MIN(column_name) FROM table_name; -- 最小值6.连接多个表进行查询:SELECT t1.column1, t2.column2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id;7.使用条件进行分组:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;8.使用LIKE进行模糊查询:SELECT * FROM table_name WHERE column_name LIKE 'keyword%';以上只是一些常见的查询示例,实际查询命令会根据具体的表结构和查询需求而有所不同。
在使用Oracle数据库时,请根据具体情况和需求构建和调整查询语句。
oracle数据库语句汇总在Oracle数据库中,有许多常用的SQL语句可以用于查询、插入、更新和删除数据。
下面列举了一些常见的Oracle数据库语句,以供参考。
1. 查询表中的所有数据:```SELECT * FROM 表名;```2. 查询表中的特定字段数据:```SELECT 字段1, 字段2, ... FROM 表名;```3. 查询表中满足特定条件的数据:```SELECT * FROM 表名 WHERE 条件;```4. 对查询结果进行排序:```SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;```5. 对查询结果进行分组:```SELECT 字段1, 字段2, ... FROM 表名 GROUP BY 字段;```6. 对查询结果进行统计:```SELECT COUNT(*) FROM 表名;```7. 插入数据到表中:```INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...);```8. 更新表中的数据:```UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;9. 删除表中的数据:```DELETE FROM 表名 WHERE 条件;```10. 创建新表:```CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型,...);```11. 修改表结构:```ALTER TABLE 表名 ADD (字段数据类型); ```12. 删除表:DROP TABLE 表名;```13. 创建索引:```CREATE INDEX 索引名 ON 表名 (字段);```14. 删除索引:```DROP INDEX 索引名;```15. 创建视图:```CREATE VIEW 视图名 AS SELECT * FROM 表名 WHERE 条件; ```16. 删除视图:```DROP VIEW 视图名;17. 创建存储过程:```CREATE PROCEDURE 存储过程名ISBEGIN-- 存储过程的具体逻辑END;```18. 调用存储过程:```EXEC 存储过程名;```以上是一些常见的Oracle数据库语句,可以满足大部分基本的数据操作需求。
第一篇基本操作--解锁用户alter user 用户account unlock;--锁定用户alter user 用户account lock;alter user scott account unlock;--创建一个用户yc 密码为a create user 用户名identified by 密码;create user yc identified by a;--登录不成功,会缺少create session 权限,赋予权限的语法grant 权限名to 用户;grant create session to yc;--修改密码alter user 用户名identified by 新密码;alter user yc identified by b;--删除用户drop user yc ;--查询表空间select *from dba_tablespaces;--查询用户信息select *from dba_users;--创建表空间create tablespace ycspacedatafile 'E:\oracle\app\product\11.2.0\dbhome_1\oradata\ycspace.dbf'size 2mautoextend on next 2m maxsize 5moffline ;--创建临时表空间create temporary yctempspacetempfile 'E:\oracle\app\product\11.2.0\dbhome_1\oradata\ycspace.dbf'size 2mautoextend on next 2m maxsize 5moffline ;--查询数据文件select *from dba_data_files;--修改表空间--1、修改表空间的状态--默认情况下是online,只有在非离线情况下才可以进行修改alter tablespace ycspace offline ; --离线状态,不允许任何对象对该表空间的使用,使用情况:应用需要更新或维护的时候;数据库备份的时候alter tablespace ycspace read write;--读写状态alter tablespace ycspace online;alter tablespace ycspace read only; --只读,可以查询信息,可以删除表空间的对象,但是不能创建对象和修改对象。
Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
Oracle数据库语句大全一.入门部分1.创建表空间create tablespace schooltbs datafile ‘D:\oracle\datasource\schooltbs.dbf’ size 10M autoextend on;2.删除表空间drop tablespace schooltbs[including contents and datafiles];3.查询表空间基本信息select *||tablespace_name from DBA_TABLESPACES;4.创建用户create user lihuaidentified by lihuadefault tablespace schooltbstemporary tablespace temp;5.更改用户alter user lihuaidentified by 123default tablespace users;6.锁定用户alter user lihua account lock|unlock;7.删除用户drop user lihua cascade;--删除用户模式8.oracle数据库中的角色connect,dba,select_catalog_role,delete_catalog_role,execute_catalo g_role,exp_full_database,imp_full_database,resource9.授予连接服务器的角色grant connect to lihua;10.授予使用表空间的角色grant resource to lihua with grant option;--该用户也有授权的权限11.授予操作表的权限grant select,insert on user_tbl to scott;--当前用户grant delete,update on er_tbl to scott;--系统管理员二.SQL查询和SQL函数1.SQl支持的命令:数据定义语言(DDL):create,alter,drop数据操纵语言(DML):insert,delete,update,select数据控制语言(DCL):grant,revoke事务控制语言(TCL):commit,savepoint,rollback2.Oracle数据类型字符,数值,日期,RAW,LOB字符型char:1-2000字节的定长字符varchar2:1-4000字节的变长字符long:2GB的变长字符注意:一个表中最多可有一列为long型Long列不能定义唯一约束或主键约束long列上不能创建索引过程或存储过程不能接受long类型的参数。
oracle19c常用命令数据库启动、关闭和状态检查•启动数据库:SqlSQL> STARTUP; # 启动数据库,默认为读写模式SQL> STARTUP MOUNT; # 只装载数据库但不打开SQL> STARTUP OPEN READ ONLY; # 以只读模式打开数据库•关闭数据库:SqlSQL> SHUTDOWN; # 正常关闭数据库,等待所有会话结束SQL> SHUTDOWN IMMEDIATE; # 立即关闭数据库,断开所有会话SQL> SHUTDOWN TRANSACTIONAL; # 在事务结束后关闭数据库SQL> SHUTDOWN ABORT; # 强制立即关闭数据库,可能导致数据丢失•查看数据库状态:SqlSQL> SELECT DATABASE_STATUS FROM V$INSTANCE;SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;用户管理•创建用户并分配表空间:SqlCREATE USER username IDENTIFIED BY password DEFAULTTABLESPACE users QUOTA UNLIMITED ON users;•给用户授权:SqlGRANT connect, resource TO username;GRANTdba TO username; # 授予数据库管理员权限表空间操作•创建表空间:SqlCREATE TABLE SPACE new_tbs DATAFILE'/path/to/datafile.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;•删除表空间(需先离线):SqlALTER TABLE SPACE tbs_name OFFLINE;DROP TABLESPACE tbs_name INCLUDING CONTENTS ANDDATAFILES;PDB(可插拔数据库)管理•创建PDB:SqlCREATE PLUGGABLE DATABASE pdb_nameADMIN USER admin_user identified by passwordFILENAME '/path/to/pdb.xml';•开启/关闭PDB:SqlALTER PLUGGABLE DATABASE pdb_name OPEN;ALTER PLUGGABLE DATABASE pdb_name CLOSE;其他常用操作•查询当前登录用户:SqlSELECT USER FROM DUAL;•备份数据库:Bashrman target / # 进入RMAN恢复管理器BACKUP DATABASE; # 执行全库备份•查询数据库版本信息:SqlSELECT * FROM v$version;数据查询与操作•查询表数据:SqlSELECT * FROM your_table;-- 或者特定列SELECT column1, column2 FROM your_table;•插入数据:SqlINSERT INTO your_table (column1, column2) VALUES('value1', 'value2');•更新数据:SqlUPDATE your_table SET column1 = 'new_value'WHEREcondition;•删除数据:SqlDELETE FROM your_table WHERE condition;索引管理•创建索引:SqlCREATE INDEX idx_your_table_column1 ONyour_table(column1);•删除索引:SqlDROP INDEX idx_your_table_column1;触发器和序列•创建序列:SqlCREATE SEQUENCE seq_your_sequenceSTART WITH1INCREMENT BY1NOMAXVALUE;•使用序列:SqlINSERT INTO your_table (id, column1) VALUES(seq_your_sequence.NEXTVAL, 'value1');•创建触发器:SqlCREATE OR REPLACE TRIGGER trg_your_triggerBEFORE INSERT ON your_tableFOR EACH ROWBEGIN:NEW.column1 := seq_your_sequence.NEXTVAL;END;事务控制•开始事务:SqlSET TRANSACTION;•提交事务:SqlCOMMIT;•回滚事务:SqlROLLBACK;•保存点设置与恢复:SqlSAVEPOINT your_savepoint;ROLLBACK TO your_savepoint;SQL性能分析•查看执行计划:SqlEXPLAIN PLAN FOR SELECT * FROM your_table;SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 数据库审计•开启审计:SqlAUDIT ALL BY user_name BY ACCESS;•查看审计记录:SqlSELECT * FROM SYS.AUD$;。
SELECT [ALL | DISTINCT] [selec_columns | *] FROM table_name[WHERE search_condition][GROUP BY columns][HAVING search_condition][ORDER BY columns [ASC | DESC]](1)SELECT:查询关键字,用于选择查询的列。
(2)[ALL | DISTINCT]:用于标识查询结果集中相同数据的处理方式,all关键字表示显示查询到的所有数据,包括重复的行;DISTINCT关键字表示查询数据中的重复行只显示一次。
(3)selec_columns:表示要查询的列,列名之间使用逗号隔开,如果需要查询表中所有的列可直接用“*”表示。
(4)WHERE search_condition:指定查询操作的条件,只有符合条件的数据才会被查询出来。
(5)GROUP BY columns:用于设置分组查询的列。
(5)HAVING search_condition:用于设置分组的条件,需要与GROUP BY语句结合使用。
(6)ORDER BY columns [ASC | DESC]:用于指定结果集的排序方式,ASC为升序,DESC为降序,默认ASC升序。
1、基本查询2.条件语句查询3、模糊查询在实际应用中如果不能完全确定查询的条件,但是又了解这些条件的某些特征,就可以通过模糊查询来解决问题,在where子句中可以使用like或not like编写模糊查询的条件实现模糊查询需要用到两个通配符,分别为“%”与“_”(1)%:表示零个、一个或多个任意字符。
(2)_:表示一个任意字符。
4、排序查询如果希望对查询的结果进行排序,就需要使用order by子句,order by子句可以将查询的结果按照升序或者降序进行排列5、分组查询使用GROUP BY子句与HAVING子句实现,GROUP BY子句用于指定分组的列,HAVING语句用于指定分组的条件6、其他查询a、DISTINCT取消重复行b、列的别名7、子查询a、单行子查询执行数据库操作时,如果某个操作希望依赖于另外一个SELECT语句的查询结果,那么就可以在操作中嵌入SELECT语句,当查询操作中嵌入了SELECT语句后,就形成了一个子查询。
Oracle 常用语句汇总select * from user_tab_comments 取得所有表的注释select * from user_col_comments 取得所有列的注释select * from user_tables 取得当前用户下所有的表1、查找表的所有索引(包括索引名,类型,构成列):select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表2、查找表的主键(包括名称,构成列):select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表3、查找表的唯一性约束(包括名称,构成列):select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引用表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名5、查询表的所有列及其属性select t.*,MENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表/*1-获取任意用户下的主键字段*/select cons.* from all_cons_columns cons, all_constraints conwhere con.constraint_type='P'and cons.table_name = '表名'and cons.constraint_name=con.constraint_name;/*2-获取本用户下的主键字段*/select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = '表名'正在看的ORACLE教程是:oracle常用sql语句。
Oracle备份常用命令Oracle也是常用的数据库之一,备份起来的话有时候是否感到棘手?保存好以下信息,相信能助你一臂之力。
一.常用的备份命令1.list backup;列出数据库中所有的备份信息。
2.list backup of controlfile;列出所有备份的控制文件。
3.list backup of datafile ' 或者 list backup of datafile 对应数据文件的ID号。
数据文件全路径.dbf';列出指定的备份的数据文件。
4.list backup of archivelog all;列出所有备份的归档文件。
5.list copy of tablespace '表空间名';列出指定表空间的备份信息。
6.list expired backup;列出无效备份。
7.delete obsolete;删除过期备份。
8.delete expired backup;删除无效备份。
9.delete expired copy;删除expired副本。
10.delete backupset 备份集编号;删除指定备份集。
11.delete backup;删除所有备份集。
12.delete copy;删除所有映像副本。
13.report need backup;查看所需要的备份文件14.report need backup tablespace 表空间名;查看指定表空间是否需要备份。
15.crosscheck archivelog all;检查归档文件是否有效16.crosscheck backup;检查所有备份集。
RMAN相关的list backup of database(查看数据库的全库备份,全部细节都包括)list backup of tablespace users (查看users表空间的备份) list backup of datafile 5;(5是表空间对应的文件id)list backup of controlfile(看出控制文信息的备份)list backup of datafile'+DATADG/cboms/datafile/users.264.735423243';(根据具体的数据文件的具体位置,查看备份)list expired backup;(无效的备份)list expired archivelog all;(查看无效的archive log 日志) list backup of database summary(这个是对概况性的,对数据库有个直观,全面的了解)list backup of database summarylist backup of archivelog all summarylist backup of tablespace users summarylist backup of datafile 5 summarycrosscheck archivelog all;验证DB的归档日志时候缺失crosscheck backup;验证数据库备份集的是否缺失delete expired archivelog all;命令删除所有过期的归档日志RMAN> crosscheck backup;using channel ORA_DISK_1crosschecked backup piece: found to be 'AVAILABLE'backup piecehandle=/u01/flash_recovery_area/DBTEST/backupset/2012_04_21 /o1_mf_nnndf_TAG20120421T153359_7s4rq7v6_.bkp recid=22 stamp=781198439crosschecked backup piece: found to be'AVAILABLE'backup piecehandle=/u01/flash_recovery_area/DBTEST/backupset/2012_04_21 /o1_mf_ncnnf_TAG20120421T153359_7s4rsm9k_.bkp recid=23 stamp=781198515Crosschecked 2 objectsRMAN>17.修改备份状态用CHANGE,如修改表空间RMAN> backup tablespace users format'/backup/rmanbackup/userscp';Starting backup at 21-APR-12using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backupsetchannel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00004name=/u01/oradata/dbtest/users01.dbfchannel ORA_DISK_1: starting piece 1 at 21-APR-12channel ORA_DISK_1: finished piece 1 at 21-APR-12piece handle=/backup/rmanbackup/userscptag=TAG20120421T155115 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 21-APR-12RMAN> list backup of tablespace users;List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ---------------------------24 Full 2.02M DISK 00:00:00 21-APR-12BP Key: 28 Status:AVAILABLE Compressed: NO Tag:TAG20120421T155115Piece Name: /backup/rmanbackup/userscpList of Datafiles in backup set 24File LV Type Ckp SCN Ckp Time Name---- -- ---- ---------- --------- ----4 Full 1388204 21-APR-12 /u01/oradata/dbtest/users01.dbfRMAN> change backup of tablespace users unavailable;changed backup piece unavailablebackup piece handle=/backup/rmanbackup/userscp recid=28 stamp=781199475Changed 1 objects to UNAVAILABLE statusRMAN> list backup of tablespace users;List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ---------------------------24 Full 2.02M DISK 00:00:00 21-APR-12BP Key: 28 Status:UNAVAILABLE Compressed: NO Tag:TAG20120421T155115Piece Name: /backup/rmanbackup/userscpList of Datafiles in backup set 24File LV Type Ckp SCN Ckp Time Name---- -- ---- ---------- --------- ----4 Full 1388204 21-APR-12 /u01/oradata/dbtest/users01.dbfRMAN>如果没有指定表空间位置,来改变状态,不会成功。
oracle 语句大全SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x <3 br/>beginprint @x --打印变量x 的值while @y <3 br/>beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator valueex:(宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber <1000 br/>and stockindex = 24not stocksex = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() ( AS [ length ])CONVERT() 函数语法如下CONVERT() ([ length ], [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD( , ,)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF( , ,)--函数返回两个指定日期在datepart 方面的不同之处DATENAME( , ) --函数以字符串的形式返回日期的指定部分DATEPART( , ) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(, ) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY([, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(, ) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(, )--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值??。
--关闭数据库Oracle自动搜集功能alter system set "_optimizer_autostats_job"=false scope=spfile--修改表的默认表空间alter table 表名 move tablespace 表空间名;--修改索引表空间ALTER INDEX 索引名 REBUILD tablespace 表空间名;--修改LOB类型默认表空间ALTER TABLE SIGNATUREWORD MOVE LOB(IMAGE) STORE AS (TABLESPACE CZDJ);--创建数据表空间(表空间名称CZDJ,表空间文件大小1024M,数据文件满后自动扩展增量100MB,文件大小无限制)create tablespace CZDJ(表空间名)datafile 'd:\oracle\product\10.2.0\oradata\orcl\ CZDJ.dbf'(存放路径)size 1024m AUTOEXTEND ONNEXT 100m maxsize unlimited;--创建临时表空间create temporary tablespace dzdj31cz_temp (表空间名)tempfile 'd:\oracle\product\10.2.0\oradata\orcl\dzdj31cz_temp01.dbf'size 32Mautoextend onnext 32M maxsize 2048Mextent management local;本地管理表空间:extent management local字典管理表空间:extent management dictionary--修改表空间alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' resize 10m; alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' autoextend on next 50m maxsize unlimited;--创建用户并指定表空间create user 用户名 identified by 密码default tablespace 默认表空间temporary tablespace 临时表空间;--修改用户密码alter user 用户名 identified by 密码;--给表空间增加数据文件ALTER TABLESPACE sdeADD DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\sde01.dbf' size 20480M autoextend on next 50M maxsize unlimited;--给用户授予权限grant connect,dba,resource to 用户名--给用户解锁alter user username account unlock;--OraOLEDB.Oracle.1没有注册解决方法:regsvr32 D:\oracle\product\10.2.0\db_1\BIN\OraOLEDB10.dll--查询表空间状态select tablespace_name,status from dba_tablespaces;--表空间离线在线:离线的表空间无法访问,用于数据维护。
Linux_oracle命令大全一,启动1.#su - oracle 切换到oracle用户且切换到它的环境2.$lsnrctl status 查看监听及数据库状态3.$lsnrctl start 启动监听4.$sqlplus / as sysdba 以DBA身份进入sqlplus5.SQL>startup 启动db二,停止1.#su - oracle 切换到oracle用户且切换到它的环境2.$lsnrctl stop 停止监听3.$sqlplus / as sysdba 以DBA身份进入sqlplus4.SQL>SHUTDOWN IMMEDIATE 关闭db其中startup和shutdowm还有其他一些可选参数,有兴趣可以另行查阅三,查看初始化参数及修改1.#su - oracle 切换到oracle用户且切换到它的环境2.$sqlplus / as sysdba 以DBA身份进入sqlplus3.SQL>show parameter session; 查看所接受的session数量###################################################### Oracle process与session2008年12月29日星期一15:47Connected to Oracle Database 10g Release 10.1.0.5.0Connected as ifsappSQL> show parameter sessionNAME TYPE V ALUE------------------------------------ ----------- ------------------------------java_max_sessionspace_size integer 0java_soft_sessionspace_limit integer 0license_max_sessions integer 0license_sessions_warning integer 0logmnr_max_persistent_sessions integer 1session_cached_cursors integer 0session_max_open_files integer 10sessions integer 225shared_server_sessions integerSQL> show parameters processes;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes integer 0job_queue_processes integer 3log_archive_max_processes integer 2processes integer 200SQL> alter system set processes=600 scope=both;SQL>SQL> alter system set processes=600 scope=both;alter system set processes=600 scope=bothORA-02095: specified initialization parameter cannot be modified SQL> alter system set sessions=600 scope=both;alter system set sessions=600 scope=bothORA-02095: specified initialization parameter cannot be modified SQL>SQL> alter system set processes=600 scope=spfile;System alteredSQL> show parameters processes;NAME TYPE V ALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes integer 0job_queue_processes integer 3log_archive_max_processes integer 2processes integer 200SQL> alter system set processes=600 scope=memory;alter system set processes=600 scope=memoryORA-02095: specified initialization parameter cannot be modified重启数据库之后生效:SQL> show parameters processes;NAME TYPE V ALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes integer 0job_queue_processes integer 3log_archive_max_processes integer 2processes integer 600SQL> show parameter sessionNAME TYPE V ALUE------------------------------------ ----------- ------------------------------java_max_sessionspace_size integer 0java_soft_sessionspace_limit integer 0license_max_sessions integer 0license_sessions_warning integer 0logmnr_max_persistent_sessions integer 1session_cached_cursors integer 0session_max_open_files integer 10sessions integer 665shared_server_sessions integer修改Oracle process 和session 的方法先备份spfile1.通过SQLPlus修改Oracle的sessions和processes的关系是sessions=1.1*processes + 5使用sys,以sysdba权限登录:SQL> show parameter processes;NAME TYPE V ALUE------------------------------------ ----------- --------------------------------------- aq_tm_processes integer 1db_writer_processes integer 1job_queue_processes integer 10log_archive_max_processes integer 1processes integer 150SQL> alter system set processes=400 scope = spfile;系统已更改。
1.create user username identified by password;//建用户名和密码oracle ,oracle2.grant connect,resource,dba to username;//授权grantconnect,resource,dba,sysdba to username;3.connect username/password//进入。
4.select table_name,column_name from user_tab_columns wheretable_name='mview_log';//查询表中的表名,字段名等等。
5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql;6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体.使用C#描述应如下所示:mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) VALUES (1, \'2\'); INSERT INTOGROUP_INFO(GROUP_ID, GROUP_NAME) VALUES (2, \'2\'); end;";7.查询用户下的所有表select distinct table_name from user_tab_columns;8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum<n9.查找用户下的所有表:select * from tab;2、显示当前连接用户SQL> show user3、查看系统拥有哪些用户SQL> select * from all_users;4、新建用户并授权SQL> create user a identified by a;(默认建在SYSTEM表空间下)SQL> grant connect,resource to a;5、连接到新用户SQL> conn a/a6、查询当前用户下所有对象SQL> select * from tab;7、建立第一个表SQL> create table a(a number);8、查询表结构SQL> desc a9、插入新记录SQL> insert into a values(1);10、查询记录SQL> select * from a;11、更改记录SQL> update a set a=2;12、删除记录SQL> delete from a;13、回滚SQL> roll;SQL> rollback;14、提交SQL> commit;select * from(select t.*,dense_rank() over (order by cardkind) rank from cardkind t)where rank = 2;46. 如何在字符串里加回车?select 'Welcome to visit'||chr(10)||'' from dual ;47. 中文是如何排序的?Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。
设置NLS_SORT值SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序SCHINESE_PINYIN_M 按照拼音排序48. Oracle8i中对象名可以用中文吗?可以49. 如何改变WIN中SQL*Plus启动选项?SQL*PLUS自身的选项设置我们可以在$ORACLE_HOME/sqlplus/admin/glogin.sql中设置。
50. 怎样修改oracel数据库的默认日期?alter session set nls_date_format='yyyymmddhh24miss';OR可以在init.ora中加上一行nls_date_format='yyyymmddhh24miss'51. 如何将小表放入keep池中?alter table xxx storage(buffer_pool keep);52. 如何检查是否安装了某个patch?check that oraInventory53. 如何使select语句使查询结果自动生成序号?select rownum,COL from table;54. 如何知道数据裤中某个表所在的tablespace?select tablespace_name from user_tables where table_name='TEST';select * from user_tables中有个字段TABLESPACE_NAME,(oracle);select * from dba_segments where …;55. 怎么可以快速做一个和原表一样的备份表?create table new_table as (select * from old_table);55. 怎么在sqlplus下修改procedure?select line,trim(text) t from user_source where name ='A' order by line;56. 怎样解除PROCEDURE被意外锁定?alter system kill session ,把那个session给杀掉,不过你要先查出她的session id or把该过程重新改个名字就可以了。
57. SQL Reference是个什么东西?是一本sql的使用手册,包括语法、函数等等,oracle官方网站的文档中心有下载.58. 如何查看数据库的状态?unix下ps -ef | grep orawindows下看服务是否起来是否可以连上数据库59. 请问如何修改一张表的主键?alter table aaadrop constraint aaa_key ;alter table aaaadd constraint aaa_key primary key(a1,b1) ;60. 改变数据文件的大小?用ALTER DATABASE .... DATAFILE .... ;手工改变数据文件的大小,对于原来的数据文件有没有损害。
61. 怎样查看ORACLE中有哪些程序在运行之中?查看v$sessions表62. 怎么可以看到数据库有多少个tablespace?select * from dba_tablespaces;63. 如何修改oracle数据库的用户连接数?修改initSID.ora,将process加大,重启数据库.64. 如何查出一条记录的最后更新时间?可以用logminer 察看65. 如何在PL/SQL中读写文件?UTL_FILE包允许用户通过PL/SQL读写操作系统文件。
66. 怎样把"&"放入一条记录中?insert into a values (translate ('at{&}t','at{}','at'));67. EXP 如何加QUERY参数?EXP USER/PASS FILE=A.DMP TABLES(BSEMPMS)QUERY='"WHERE EMP_NO=\'S09394\'\" ﹔68. 关于oracle8i支持简体和繁体的字符集问题?ZHS16GBK可以支69. Data Guard是什么软件?就是Standby的换代产品70. 如何创建SPFILE?SQL> connect / as sysdbaSQL> select * from v$version;SQL> create pfile from spfile;SQL> CREATE SPFILE FROM PFILE='E:\ora9i\admin\eygle\pfile\init.ora';文件已创建。
SQL> CREATE SPFILE='E:\ora9i\database\SPFILEEYGLE.ORA' FROMPFILE='E:\ora9i\admin\eygle\pfile\init.ora';文件已创建。
71. 内核参数的应用?shmmax含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。
这个设置也不影响操作系统的内核资源。
设置方法:0.5*物理内存例子:Set shmsys:shminfo_shmmax=10485760shmmin含义:共享内存的最小大小。
设置方法:一般都设置成为1。
例子:Set shmsys:shminfo_shmmin=1:shmmni含义:系统中共享内存段的最大个数。
例子:Set shmsys:shminfo_shmmni=100shmseg含义:每个用户进程可以使用的最多的共享内存段的数目。
例子:Set shmsys:shminfo_shmseg=20:semmni含义:系统中semaphore identifierer的最大个数。
设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10。
例子:Set semsys:seminfo_semmni=100semmns含义:系统中emaphores的最大个数。
设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的processes的值的总和(除去最大的Processes参数)+最大的那个Processes×2+10×Oracle实例的个数。
例子:Set semsys:seminfo_semmns=200semmsl:含义:一个set中semaphore的最大个数。