问题及解决方法
问题及解决一
宿主机 ping 虚拟机 出现 “请求超时”或者“无法访问目标主机”的问题
描述:首先虚拟机的网络连接设置为"Host-only":
然后在 cmd 窗口中查看 VMnet1 的 ip 地址,这里是 192.168.254.1
接下来在 Linux 中设置网卡地址,和 VMnet1 一个网段,这里设置的是 192.168.254.100
解决的方法是:
1.首先关闭宿主机的防火墙(控制面板中)
2.关闭虚拟机的防火墙:chkconfig iptables off
查看防火墙是否开启:service iptables status
此时再次 ping 192.168.254.100:
如果还是 ping 不通的话,把杀毒软件或者安全中心之类的软件关闭再试
问题及解决二
write to SPFILE requested but no SPFILE is in use 问题
在执行该命令时出现下列错误
SYS@PROD>alter system set UTL_FILE_DIR='/home/oracle','/home/oracle/temp','/home/oracle/scripts' scope=spfile;
alter system set UTL_FILE_DIR='/home/oracle','/home/oracle/temp','/home/oracle/scripts' scope=spfile
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use
解决的方法是:
1.查看是否有spfile
SYS@PROD>show parameter spfile;
NAME TYPE VALUE
------------------------------------ ---------------------
spfile string
2.从pfile创建spfile
SYS@PROD>create spfile from pfile;
File created.
3.关闭数据库
SYS@PROD>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
4.启动数据库
SYS@PROD>startup
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 541068368 bytes
Database Buffers 289406976 bytes
Redo Buffers 2371584 bytes
Database mounted.
Database opened.
5.查看是否有spfile文件
SYS@PROD>show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------------------
spfile string 01/app/oracle/product/11.2.0/db_1/dbs/spfilePROD.ora
6.再次执行该命令,问题解决
SYS@PROD>alter system set UTL_FILE_DIR='/home/oracle','/home/oracle/temp','/home/oracle/scripts' scope=spfile;
System altered.
问题及解决三
参数MEMORY_MAX_TARGET 和MEMORY_TARGET 的修改
环境: ORACLE11G,
查看TOP中看到,内存总是用到一半,感觉很莫名,直接修改参数MEMORY_MAX_TARGET和MEMORY_TARGET,出以下错误:
ORA-00845 MEMORY_TARGET not supported on this system
查询相关错误得到以下内容:
/dev/shm理论
/dev/shm/是linux下一个非常有用的目录,
因为这个目录不在硬盘上,而是在内存里。
因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。
/dev/shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,
使用df -h命令可以看到。
但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;
如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,
但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢?
默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。像虚拟磁盘一样,
tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,
并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;
您只是安装它,它就可以使用了。
tmpfs有以下优势:
1,动态文件系统的大小。
2,tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
3,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。
二、修改/dev/shm大小
[root@dg1 ~]# vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/opt /opt ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
LABEL=SWAP-sda3 swap swap defaults 0 0
修改为:
tmpfs /dev/shm tmpfs defaults,size=52g 0 0
把内存只能 使用到系统的的一半32G,扩展到,size=52g 。
执行以下命令,使期生效
mount -o remount /dev/shm
再修改ORACLE 参数
SQL> alter system set memory_max_target=52000M scope=spfile;
System altered.
SQL> alter system set memory_target=50000M scope=spfile;
System altered.
SQL> show parameter target;
备注:随笔中内容来源于网上资料整理,仅供参考。