分类目录归档:未分类

Linux启动/停止/重启Mysql数据库的方法

1、查看mysql版本
方法一:status;
方法二:select version();

2、Mysql启动、停止、重启常用命令
a、启动方式
1、使用 service 启动:
[root@localhost /]# service mysqld start (5.0版本是mysqld)
[root@szxdb etc]# service mysql start (5.5.7版本是mysql)

2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:
safe_mysqld&

b、停止
1、使用 service 启动:
service mysqld stop

2、使用 mysqld 脚本启动:
/etc/inint.d/mysqld stop

3、mysqladmin shutdown

c、重启
1、使用 service 启动:
service mysqld restart
service mysql restart (5.5.7版本命令)

2、使用 mysqld 脚本启动:
/etc/init.d/mysqld restart

 

Oracle数据添加用户(dba角色)和表空间

1.首先,创建(新)用户:
    create user username identified by password;
    username:新用户名的用户名
    password: 新用户的密码
也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户

2.创建表空间:
    create tablespace tablespacename datafile 'd:data.dbf' size xxxm;
    tablespacename:表空间的名字
    d:data.dbf':表空间的存储位置
    xxx表空间的大小,m单位为兆(M)
3.将空间分配给用户:
   alert user username default tablespace tablespacename;
   将名字为tablespacename的表空间分配给username 

4.给用户授权:
   grant create session,create table,unlimited tablespace to username;

5.然后再以楼主自己创建的用户登录,登录之后创建表即可。
conn username/password;6.查看服务名env |grep SID 7.授予dba权限grant dba to username7.使用上面的用户名、密码、sid登录plsql


每步执行的sql:(sjzx是数据库名、用户名、密码、表空间名)
(1)create user sjzx identified by sjzx
(2)create tablespace sjzx datafile 'D:dbapporadataorclsjzx.dbf' 
        size 100m 
        autoextend on next 32m maxsize 2048m

(3)alter user sjzx default tablespace sjzx

(4)grant create session,create table,unlimited tablespace to sjzx

 

1.创建用户
create user user_name identified by "user_password"
default tablespace tbs_name
temporary tablespace temp profile DEFAULT;

2.授权
grant connect to user_name;
grant create indextype to user_name;
grant create job to user_name;
grant create materialized view to user_name;
grant create procedure to user_name;
grant create public synonym to user_name;
grant create sequence to user_name;
grant create session to user_name;
grant create table to user_name;
grant create trigger to user_name;
grant create type to user_name;
grant create view to user_name;
grant unlimited tablespace to user_name;
alter user user_name quota unlimited on tbs_name;

  在oracle命令行中,查看oracle表空间数据文件位置

select t1.name,t2.name   from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

 

 

oracle 11g用exp无法导出空表的解决方案

Oacle 11g中有个新特性,当表无数据时,不分配segment,以节省空间,当我们用exp导出空表时,无法导出。

 

解决方法是两个方面,一是处理现有的空表,让其能导出;二是设置参数,让后续的新的空表也可以导出

 ———————————–处理一           ———————————————————————————–

查询所有空表并分配segment,使用以下语句查询生成修改空表设置的SQL:

 

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

  

 

 将输出的SQL复制到SQL执行窗口,并执行。

 

 ———————————–处理二           ——————————————————–—————————

设置系统参数,让后续新表自动分配segment,查询系统参数,该参数值默认是TRUE,当改为FALSE时,无论是空表还是非空表,都分配segment.

查询语句:show parameter deferred_segment_creation;

将这个参数修改为FALSE,修改语句为:

alter system set deferred_segment_creation=false;

再次查询确认参数是否修改成功:

show parameter deferred_segment_creation;

可见已经修改为FALSE了,如图:

 

 

 

 

 

 

禁止EXCEL单元格粘贴和拖放,只允许手动输入

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target  As Range)
If Not Application.Intersect(Target, Range("F10:M26,D2")) Is Nothing Then
MsgBox ("禁止粘贴内容!,请双击后输入内容!")
Application.CellDragAndDrop = False
Else
Application.CellDragAndDrop = True
End If
End Sub
Private Sub Worksheet_Deactivate()
Application.CellDragAndDrop = True
End Sub

 注意:Range(“F10:M26,D2”) 为指定的禁止粘贴的区域。只能手动输入。

Excel限制某一区域不能输入重复的数据

例如:需要在边框线实线的区域不能输入重复的值

 

 1.选中该区域,并记住选中区域里背景没有变灰的单元格的行列号(例如图中为:K27),后面写公式的时候使用

 

 2.按照图中的步骤找到【数据验证】

 

 3.点击前面找到的【数据验证】,【设置】页签里的允许调整为【自定义】

 

 

 4.在公式单元各输入公式

 

 

 5.点击【确认】完成任务

6.验收

 

 7.修改提示信息,选择刚才单元格实线的区域后按照步骤2打开【数据验证】,在【出错警示】页签修改即可如下图,【确认】即可完成

 

 8.验证提示信息

 

ORA-01034:oracle不可用 的解决方法

晚上打开SQLPlus输入用户名和密码老是登不了,出现如上一行代码 “ORA-01034:ORACLE不可用”的错误

 

解决思路:

1、检查服务是否启动,

2、如果已经启动,说明数据库没有启动,需要使用管理员身份登陆后,使用startup 启动;

     cmd sqlplus / as sysdba    进去后,提示:已连接到空闲例程

     startup                           例程已启动,数据库装载完毕

     如果不能启动,先可以使用shutdown immediate 再启动,再不行,就只有查错误,在不链接数据库情况下,下设置环境,将相应的错误修复后再启动

 

注意:每样操作完数据库后,记得关闭例程   shutdown immediate

ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 问题解决思路

最近突然出现数据库莫名奇妙出现这个问题,之前一直好使。

从网上看各种文章检查都没有发现问题,

有这种的:https://www.cnblogs.com/kerrycode/p/6698791.html

最后我检查表空间占用情况,发现表空间占用接近100%了

参照(修改查看和修改方方法):https://www.cnblogs.com/JoePotter/p/8040443.html

后来发现oracel 监听日志文件超过2G

赶紧写个定时清理日志的脚本再观察

 

@echo off
rem @echo off 
rem 取1天之前的日期
echo wscript.echo dateadd("d",-1,date) >%tmp%tmp.vbs 
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%tmp.vbs') do set y=%%i
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%tmp.vbs') do set m=%%j
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%tmp.vbs') do set d=%%k
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
echo %y%-%m%-%d%
 
rem 设置 ORACLE 位于的盘符
set ORACLE_DRIVER=E:
rem 设置 ORACLE 的主目录
set ORACLE_PATH=%ORACLE_DRIVER%appAdministrator
rem 设置 ORACLE 的监听日志目录
set LOG_PATH=%ORACLE_PATH%diagtnslsnrWIN-84ENAN9HB3Flistenertrace
rem 移动文件
move %LOG_PATH%listener.log %LOG_PATH%listener%y%-%m%-%d%.log  

 

加入系统定时任务每天执行一次防止再次过大。

 

 

继续观察中…..

如何创建ORACLE大文件表空间

SQL>CREATE BIGFILE TABLESPACE 表名
datafile 'd:ndoddo表名.DBF‘
SIZE 500M AUTOEXTEND ON;


SQL>Create Bigfile tablespace  bf_images_xp
datafile 'e:datacenterbfbf_images_xp.dbf'  size 500M Autoextend on;
//说明如下:
//创建一个大表空间,名称为:bf_images_xp,数据文件为e:datacenterbfbf_images_xp.dbf
//初始化大小为500M,且文件自动增长


SQL>create bigfile tablespace bf_v_xp
datafile 'e:datacenterbfbf_v_xp.dbf'  size 500M  autoextend on;
 
 
其中BIGFILE表示创建 的表空间是大文件表空间,
DATAFILE指定组成大文件表空间的大文件(上海硬盘数据恢复文件),
SIZE表示大文件的初始大小:
AUTOEXTED ON表示允许大文件自动扩张!
网友资料:供参考!
 
发现表空间文件容量与DB_BLOCK_SIZE有关,
在初始建库时,DB_BLOCK_SIZE要根据实际需要,
设置为4K,8K、16K、32K、64K等几种大小,
ORACLE的物理文件最大只允许4194304个块(由操作系统决定),
smallfile tablespace表空间文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。
即:
4k最大表空间为:16384M=16G
8K最大表空间为:32768M=32G
16k最大表空间为:65536M=64G
32K最大表空间为:131072M=128G
64k最大表空间为:262144M=256G
//---------------------------------------------------------------------
oracle bigfile tablespace 大文件表空间 ----------------------------
Oracle 10g 新增的表空间类型:大文件 (Bigfile) 表空间。      
大文件表空间从某种角度来说提高了 Oracle 在 VLDB 上的管理能力。 
只有自动段空间管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空间。 
大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小。
(以下用 BFT 指代 BIGFILE Tablespace。BFT 可以和以下存储技术结合使用:
自动存储管理(ASM)   LVM   OMF   
理论上的 BFT 可以达到下面所列的值:     
数据块大小(单位:K) BFT 最大值(单位:T)   
2k 8T   
4k 16T   
8k 32T   
16k 64T   
32k 128T     
在实际环境中,这还受到操作系统的文件系统的限制。      


BFT基本操作      
10g 数据库在创建的时候,会指定默认的表空间类型。
如果不特殊指定的话,默认为 SMALLFILE 类型的表空间。      
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE'; 
这种情况下,如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。


修改数据库默认的表空间类型
可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:      
SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;  
Database altered.      
SQL> SELECT *  FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';      
SQL>   
SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;      
创建 BIGFILE 类型的表空间,只需指定额外的一个参数 BIGFILE 即可,
其他和原有创建表空间语法类似:      
CREATE BIGFILE TABLESPACE bftbs  DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf' SIZE 5M;  
DBA_TABLESPACES (USER_TABLESPACES)与 V$TABLESPACE 这两个视图可以查看 BIGFILE 表空间的相关信息。
先看看 DBA_TABLESPACES 在 10g 中有了什么变化:      
SQL> desc DBA_TABLESPACES    
    
SQL>      
和 9i 相比,
 DBA_TABLESPACES 视图多了两列:RETENTION 和 BIGFILE。
其中 BIGFILE 列说明该表空间是否为 BFT:      
SQL> SELECT tablespace_name, bigfile FROM dba_tablespaces; 
8 rows selected.      V$TABLESPACE 视图相对 9i 也增加了新的列:  


SQL> desc V$TABLESPACE   Name
其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。      


BFT 属性      
BFT有一些特有的属性。      
1.每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ORA-32771 错误:      
SQL> ALTER TABLESPACE bftbs  
ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;   
ALTER TABLESPACE bftbs   *   ERROR at line 1:   
ORA-32771: cannot add file to bigfile tablespace      


2.只有自动段空间管理的 LMT (locally managed tablespaces ) 支持 BFT      
SQL> CREATE BIGFILE TABLESPACE bftbs02   
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M   
EXTENT MANAGEMENT DICTIONARY;   
CREATE BIGFILE TABLESPACE bftbs02   *   ERROR at line 1:   
ORA-12913: Cannot create dictionary managed tablespace      


SQL> CREATE BIGFILE TABLESPACE bftbs02   
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M  
SEGMENT SPACE MANAGEMENT MANUAL;   
CREATE BIGFILE TABLESPACE bftbs02   *   ERROR at line 1:   
ORA-32772: BIGFILE is invalid option for this type of tablespace      


3.相对文件号(RELATIVE_FNO)为1024 ( 4096 on OS/390)      
因为BFT只有一个数据文件,所以其相对文件号也是固定的:1024      
SQL> SELECT tablespace_name, file_id, relative_fno   
  FROM dba_data_files;      
SQL>      


4.rowid的变化      
在 BFT 上存储的表的 ROWID 与 smallfile 表空间上的 rowid 结构有些不同的。
要正确得到 rowid 信息,dbms_rowid 包增加了一个新的参数 ts_type_in 来解决这个问题。
参考这个范例:      
SQL> SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')   
  FROM foo; 
24      
SQL>      
你可以创建多大的表空间?      
我们在前面提及,BFT 还受到操作系统的文件系统的限制。
下面我们以 Linux 操作系统为例:      
SQL> SHOW parameters db_block_size     
  
db_block_size  integer   8192   
SQL>      
也就是说,理论上我们可以创建最大 32T

  

如何创建ORACLE大文件表空间