Oracle自带的常用工具及维护命令

常规:
oracle在sqlplus命令行下,执行完数据库操作以后,需要跟上commit才能生效。

 主要监听两个端口,1521是数据库连接端口,8080是服务器端口

oracle默认安装完毕,会自带一个http服务器,以web的形式提供用户管理界面,该服务器端口8080与tomcat的默认端口一样,是导 致tomcat启动不了的常见原因,我一般是修改tomcat的配置文件server.xml,把http1.1的端口改成8081。


系统维护:
 登录

sqlplus username/password@ip:1521/orcl [as sysdba,sysoper]


如果数据库就是本机,则不用启动其他服务,如果数据库服务器是远程的,远程主机必须同时启动OracleOraDb10g_home1TNSListener监听服务。并且要在启动数据库之前,如果数据库已经启动,先关闭数据库,打开监听,在启动数据库。

不写地址默认是localhost 不写身份默认是sysoper

Oracle最需要注意的是两个服务,一个是数据库自身,一个是监听器

查询监听器: lsnrctl status--在cmd下而不是sqlplus下
启动监听器: lsnrctl start--在cmd下而不是sqlplus下
停止监听器: lsnrctl stop--在cmd下而不是sqlplus下
启动数据库: startup--在sqlplus下
停止数据库: shutdown immediate--在sqlplus下

查询sid
select instance_name from v$instance
查询数据库版本

Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';

查询字符集

            Select parameter,value from nls_database_parameters where parameter like 'NLS_CHARACTERSET';

创建用户
  create user weinianjie identified by "123" default tablespace sheep temporary tablespace temp profile default;
  grant resource,connect,dba to weinianjie;
查询当前用户

show user;

             导出某用户的所有数据

                          cmd下exp user/password owner=user file="c:\aa.dmp"

            导出某张表

                          cmd下exp user/password owner=user tables=(t1,t2) file="c:\aa.dmp"

            导入dmp文件:

                         cmd下imp userid=用户名/密码@orcl file=d:\nc60.dmp full=y

             命令行结果输出到某个文件

             spool c:\s.txt

             select * from mytable;

             spool off

            执行sql脚本

                        @aa.sql;


命名空间:
解释:
百度百科原话:
  “ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个Oracle,而一 个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时 段等。 
  每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间必须总要保持联机,因为其 包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件 产品要求的表)。”
 我的理解,表空间跟库的概念差不多,一个表空间对应一个或者多个物理文件,每个用户属于一个或多个表空间,其中有一个是默认的。连接数据库的时候不需要制定表空间,用户创建的对象会在用户默认的表空间里存放着。
命名空间定义了一组对象类型,在命名空间里,对象的名字必须是唯一的,当然,在不同的命名空间里,是可以使

用相同的的名字的。

下面的对象类型共享同一个命名空间:
? Tables
? Views
? Sequences
? Private synonyms
? Stand-alone procedures
? Stand-alone stored functions
? Packages
? Materialized views
? User-defined types

创建、查询和修改:

数据库文件查询
             select * from sys.dba_data_files;
数据表空间
create tablespace sheep datafile 'c:/sheep.dbf' size 20m autoextend on;
临时表空间
create temporary tablespace sheep tempfile 'c:/sheep.dbf' size 20m autoextend on;
查询空间:
select tablespace_name from dba_tablespaces;
select tablespace_name from user_tablespaces;
查询表空间的物理情况:
select * from dba_data_files where tablespace_name='SYSTEM';--这里一定要是全大写的,哪怕你建

空间的时候没有使用大写
select * from dba_temp_files where tablespace_name='TEMP';--这里一定要是全大写的,哪怕你建空

间的时候没有使用大写
查询表空间内的表:

select table_name from dba_all_tables where tablespace_name='USERS';


查询表结构,不显示主键外键信息

desc mytable;


查询表主键和外键等

select a.constraint_name,  a.column_name
 from user_cons_columns a, user_constraints b
 where a.constraint_name = b.constraint_name
 and (b.constraint_type = 'P' or b.constraint_type = 'U')
and a.table_name = 'AA'-------大写

重命名字段

alter table t rename column t1 to t2;

重命名表

alter table old_table rename  to new_table;

命令行下更新date类型字段(date_field=‘2011-10-05’,这样的语法在mysql可以,在oracle就不行了),正确的如下

update mytable set date_field=to_date('20111005','yyyymmdd');

删除:
删除主键:

              alter table mytab drop primary key;

删除唯一键:
              alter table mytab drop unique(mycolumn);


表:
查询当前用户空间的所有表和视图:

select tname from tab

查询当前用户空间的所有表:
select table_name from user_tables;
查询当前用户空间的所有视图:

select view_name from user_views;

查询视图创建语句:

select text from all_views where view_name='xxx';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值