Chinaunix首页 | 论坛 | 博客
  • 博客访问: 423551
  • 博文数量: 148
  • 博客积分: 3191
  • 博客等级: 中校
  • 技术积分: 1232
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-11 15:25
文章分类

全部博文(148)

文章存档

2011年(148)

我的朋友

分类: 系统运维

2011-08-12 17:26:36

问题1oracle中,sidservice name这两个到底有什么不同,为什么有的连接在tnsname文件中显示为service name=.....,有的有显示为sid=....,并且有时把service name 改为sid之后就连接不上去了?答:打个比方,你的名字叫小明,但是你有很多外号。你父母叫你小明,但是朋友都叫你的外号。这里你的父母就是oracle实例,小明就是sidservice name就是你的外号。sid用于实例区分各个数据库,service name用于外部链接。

今天使用oradim -delete -sid [sidname]把实例给删除了,
使用 oradim -new -sid [sidname]给重新创建出来。

查看sid

$ echo $ORACLE_SID

ciefhr

查看SERVICE_NAME

SQL> select instance_name from v$instance 

 

问题2:如何进入sqlplus

答:# su – oracle

本地连接

$ sqlplus / as sysdba

远程连接(sys为用户名,)

$ sqlplus  "sys/password@服务名 as sysdba"  

 
 
问题3

1)新建一个名为 test的用户,密码为test2011,此用户所在表空间为testspace.,

2) 在该用户下建立一张姓名表,插入若干条记录,姓名表中包括 序号,姓名,年龄,查询出30岁以上的记录数。

3)删除一条记录

4)对该数据进行恢复(闪回或备份还原)

 

答: 问题3.pdf   

 

问题4Oracle查询用户表

一、查询TEST用户下的所有表,及其创建时间

SELECT OBJECT_NAME ,CREATED FROM ALL_OBJECTS WHERE OBJECT_TYPE='TABLE' and owNER='TEST'

二、查询当前用户下的所有表

SQL> SELECT * FROM USER_TABLES  

三、查询TEST用户下的所有表

SELECT * FROM ALL_TABLES WHERE OWNER='TEST'

 

问题5 Oracle查询用户表空间

  Oracle查询用户表空间:select * from user_all_tables

  Oracle查询所有函数和储存过程:select * from user_source

  Oracle查询所有用户:select * from all_users.select * from dba_users

  Oracle查看当前用户连接:select * from v$Session

  Oracle查看当前用户权限:select * from session_privs

  Oracle查看用户表空间使用情况:

  select a.file_id "FileNo",a.tablespace_name

  "Tablespace_name",

  a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",

  sum(nvl(b.bytes,0)) "Free",

  sum(nvl(b.bytes,0))/a.bytes*100 "%free"

  from dba_data_files a, dba_free_space b

  where a.file_id=b.file_id(+)

  group by a.tablespace_name ,

  a.file_id,a.bytes order by a.tablespace_name;

 

 

问题6如何在Oracle中复制表结构和表数据

1. 复制表结构及其数据:

create table table_name_new as select * from table_name_old

 

2. 只复制表结构:

create table table_name_new as select * from table_name_old where 1=2;

或者:

create table table_name_new like table_name_old

 

3. 只复制表数据:

如果两个表结构一样:

insert into table_name_new select * from table_name_old

如果两个表结构不一样:

insert into table_name_new(column1,column2...) select column1,column2... from table_name_old

 

阅读(541) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~