请解释为什么oracle数据库服务器的物理内存会被耗尽

请解释为什么oracle数据库服务器的物理内存会被耗尽,第1张

虽然报

内存不足

的错,但不一定是你的机器本身的内存不足造成的,而只是你在安装oracle的时候可能还在运行其他程序,从而导致内存不足的。你可以把其他比较吃内存的程序关掉,然后再试一下。或者系统重启以后再安装一次试一下。如果都不行的话,可能真是你的机器配置太低了。不过一般1~2G基本就可以了。

连接数上限不会导致服务器不稳定

恰恰相反,连接数上限是保证服务器稳定性的重要措施!由于是共享环境,多个用户共用同一台服务器,试想一下,如果某个用户程序出现问题,而系统又不加限制,那么这一个用户会迅速将全部服务器资源耗尽,同一服 务器上的其他用户就会受到严重影响,甚至网站无法访问。所以,限制措施是为了有效隔离出错网站使之不对其他用户产生影响,是增强服务器稳定性的。总结过去经验,达到连接数上限的原因可能有以下几点:

1、程序出现死循环:一旦出现程序死循环,apache连接数就得不到释放,因此,在有限的资源里越积累越多,导致apache的连接数达到上限,因此无法正常浏览网站。

2、数据库空间满了:有的用户用数据库来做一些论坛等交流的程序,这样,一旦数据库空间满了,用户在通过php执行insert等sql语句时候造成数据库堵塞,从而造成资源达到上限。

3、调用数据库程序问题:调用数据库的程序逻辑不合理,对数据库 *** 作以后没有及时释放对数据库的连接,因此累计起来,很快就能达到资源上限了。值得指出的是目前域名通所有服务器的连接数上限可以容纳日访问量数十万独立IP的网站如果您的网站访问量很小,却总是提示说达到连接数上线,请您仔细检查程序,依据以往的经验,这样的网站都是程序有问题或是用户利用空间在做调试。

首先检查MySQL服务没有启动》如果没有启动,则要启动这个服务。昨天,重起服务器后出现MySQL'localhost'(10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方法。大体如下:解决法:第一步删除c:\windows\下面的my.ini第二步打开c:\mysql\bin\winmysqladmin.exe输入用户名和密码第三步在dos下输入mysqld-nt-remove删除服务在接着输入mysqld-nt-install第四步输入mysql启动成功。其它可参考的方法:1.看看hosts文件中localhost是不是指向127.0.0.12.如果是没启动mysql服务,则可运行netstartmysql。3.一些相关命令:mysqld-nt--install#启动Mysqlmysql#运行Mysqlmysql-hipAddress-uusername-p或者:直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。Error:Can'tconnecttoMySQLserveron'localhost'(10061)Errno.:2003错误编号:2003问题分析:无法连接到MySQL服务器,可能的情况为:1、MySQL服务没有启动,一般是在异常的情况下MySQL无法启动导致的,比如无可用的磁盘空间,my.ini里MySQL的basedir路径设置错误等;2、MySQL服务器资源紧张,导致无法连接。解决方法:1、如果你是虚拟主机用户(购买的空间),则联系空间商检查MySQL是否正常启动,并确认MySQL的配置信息(是否为localhost);2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。2)检查my.ini里的basedir(MySQL安装地址)和datadir(数据目录存放地址)等参数设置是否正确,然后重新启动下MySQL服务。还有一种方法是将服务器的windows补丁。微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。有人可能会问,为什么9号出现的补丁,到现在才发现问题?大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。补丁卸载方法:登录服务器,进入控制面板---添加和删除程序--(勾选上方的“显示更新”)在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。卸载完成后程序服务器,一切正常!至于该补丁修补什么漏洞,卸载后是否会出现服务器安全隐患,这个先不说,要MYSQL正常运行,临时的解决法只有如此。还有种情况下,你可以这样解决Discuz!info:CannotconnecttoMySQLserverTime:2007-11-136:25pmScript:/bbs/index.phpError:Can'tconnecttoMySQLserveron'localhost'(10061)Errno.:2003Similarerrorreporthasbeeddispatchedtoadministratorbefore.正常情况下原因如下:网站论坛访问量过大,数据库连接超过最大连接数.MYSQL数据库服务停止了.解决方法(针对WIN系统):1,首先到系统服务里面找到MYSQL服务并启动MYSQL服务.2,到MYSQL安装目录找到MY.INI文件,打开MY.INI查找max_connections修改连接数为1000重启IIS与MYSQL服务.window下命令行下输入:>cdE:\mysql\bin>mysqladmin-urootpassword你的密码>mysql-uroot-pEnterpassword:你的密码便可以、、、、、、、、、、、、、、、、、找到了根本原因,在此凉一下:导致此问题的根源在:因为给mysql的root设置了密码,而不是最初安装好时的密码为空,所以使用mysqladminversion这样子不行了,必须这样子:mysqladmin-uroot-pversion,回车后按照提示要求输入root密码即可成功运行命令。第一种方法其实就是在不知道root密码的情况下的一种解决法,那样子启动不用密码即可进mysql里面并进行root密码的修改,解决忘记了root密码的问题。输入命令“mysqladmin-urootpassword你的密码”作用是修改root用户的密码,这条命令能够不经提示输入原密码而成功执行,也说明了原密码是空。之后使用修改后的密码自然能够成功登录。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎么更改密码?首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码,除非请求管理员。方法一使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。方法二使用mysqladmin,这是前面声明的一个特例。mysqladmin-uroot-ppasswordmypasswd输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。把命令里的root改为你的用户名,你就可以改你自己的密码了。当然如果你的mysqladmin连接不上mysqlserver,或者你没有法执行mysqladmin,那么这种方法就是无效的。而且mysqladmin无法把密码清空。下面的方法都在mysql提示符下使用,且必须有mysql的root权限:方法三mysql>INSERTINTOmysql.user(Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'))mysql>FLUSHPRIVILEGES确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子,所以我也就写出来了。注意要使用PASSWORD函数,然后还要使用FLUSHPRIVILEGES。方法四和方法三一样,只是使用了REPLACE语句mysql>REPLACEINTOmysql.user(Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'))mysql>FLUSHPRIVILEGES方法五使用SETPASSWORD语句,mysql>SETPASSWORDFOR"=PASSWORD('biscuit')拟也必须使用PASSWORD()函数,但是不需要使用FLUSHPRIVILEGES。方法六使用GRANTIDENTIFIEDBY语句mysql>GRANTUSAGEON*.*TO"IDENTIFIEDBY'biscuit'这里PASSWORD()函数是不必要的,也不需要使用FLUSHPRIVILEGES。注意:PASSWORD()[不是]以在Unix口令加密的同样方法施行口令加密。MySQL忘记口令的解决法如果MySQL正在运行,首先杀之:killall-TERMmysqld。启动MySQL:bin/safe_mysqld--skip-grant-tables&就可以不需要密码就进入MySQL了。然后就是>usemysql>updateusersetpassword=password("new_pass")whereuser="root">flushprivileges重新杀MySQL,用正常方法启动MySQL。linux下方法一:#/etc/init.d/mysqlstop#mysqld_safe--user=mysql--skip-grant-tables--skip-networkingmysql-urootmysqlmysql>UPDATEuserSETPassword=PASSWORD('newpassword')whereUSER='root'mysql>FLUSHPRIVILEGESmysql>quit#/etc/init.d/mysqlrestart#mysql-uroot-pEnterpassword:mysql>方法二:直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:#mysql-udebian-sys-maint-pEnterpassword:mysql>UPDATEuserSETPassword=PASSWORD('newpassword')whereUSER='root'mysql>FLUSHPRIVILEGESmysql>quit#mysql-uroot-pEnterpassword:mysql>首先检查MySQL服务没有启动》如果没有启动,则要启动这个服务。昨天,重起服务器后出现MySQL'localhost'(10061)错误,开始以为是因为数据库链接打开过多,数据库资源耗尽的缘故,但是重启服务器以后,仍旧出现问题,于是在网上查找解决方法。大体如下:解决法:第一步删除c:\windows\下面的my.ini第二步打开c:\mysql\bin\winmysqladmin.exe输入用户名和密码第三步在dos下输入mysqld-nt-remove删除服务在接着输入mysqld-nt-install第四步输入mysql启动成功。其它可参考的方法:1.看看hosts文件中localhost是不是指向127.0.0.12.如果是没启动mysql服务,则可运行netstartmysql。3.一些相关命令:mysqld-nt--install#启动Mysqlmysql#运行Mysqlmysql-hipAddress-uusername-p或者:直接去bin里点mysqld.exe或mysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。Error:Can'tconnecttoMySQLserveron'localhost'(10061)Errno.:2003错误编号:2003问题分析:无法连接到MySQL服务器,可能的情况为:1、MySQL服务没有启动,一般是在异常的情况下MySQL无法启动导致的,比如无可用的磁盘空间,my.ini里MySQL的basedir路径设置错误等;2、MySQL服务器资源紧张,导致无法连接。解决方法:1、如果你是虚拟主机用户(购买的空间),则联系空间商检查MySQL是否正常启动,并确认MySQL的配置信息(是否为localhost);2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。2)检查my.ini里的basedir(MySQL安装地址)和datadir(数据目录存放地址)等参数设置是否正确,然后重新启动下MySQL服务。还有一种方法是将服务器的windows补丁。微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。有人可能会问,为什么9号出现的补丁,到现在才发现问题?大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。补丁卸载方法:登录服务器,进入控制面板---添加和删除程序--(勾选上方的“显示更新”)在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。卸载完成后程序服务器,一切正常!至于该补丁修补什么漏洞,卸载后是否会出现服务器安全隐患,这个先不说,要MYSQL正常运行,临时的解决法只有如此。还有种情况下,你可以这样解决Discuz!info:CannotconnecttoMySQLserverTime:2007-11-136:25pmScript:/bbs/index.phpError:Can'tconnecttoMySQLserveron'localhost'(10061)Errno.:2003Similarerrorreporthasbeeddispatchedtoadministratorbefore.正常情况下原因如下:网站论坛访问量过大,数据库连接超过最大连接数.MYSQL数据库服务停止了.解决方法(针对WIN系统):1,首先到系统服务里面找到MYSQL服务并启动MYSQL服务.2,到MYSQL安装目录找到MY.INI文件,打开MY.INI查找max_connections修改连接数为1000重启IIS与MYSQL服务.window下命令行下输入:>cdE:\mysql\bin>mysqladmin-urootpassword你的密码>mysql-uroot-pEnterpassword:你的密码便可以、、、、、、、、、、、、、、、、、找到了根本原因,在此凉一下:导致此问题的根源在:因为给mysql的root设置了密码,而不是最初安装好时的密码为空,所以使用mysqladminversion这样子不行了,必须这样子:mysqladmin-uroot-pversion,回车后按照提示要求输入root密码即可成功运行命令。第一种方法其实就是在不知道root密码的情况下的一种解决法,那样子启动不用密码即可进mysql里面并进行root密码的修改,解决忘记了root密码的问题。输入命令“mysqladmin-urootpassword你的密码”作用是修改root用户的密码,这条命令能够不经提示输入原密码而成功执行,也说明了原密码是空。之后使用修改后的密码自然能够成功登录。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。怎么更改密码?首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码,除非请求管理员。方法一使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。方法二使用mysqladmin,这是前面声明的一个特例。mysqladmin-uroot-ppasswordmypasswd输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。把命令里的root改为你的用户名,你就可以改你自己的密码了。当然如果你的mysqladmin连接不上mysqlserver,或者你没有法执行mysqladmin,那么这种方法就是无效的。而且mysqladmin无法把密码清空。下面的方法都在mysql提示符下使用,且必须有mysql的root权限:方法三mysql>INSERTINTOmysql.user(Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'))mysql>FLUSHPRIVILEGES确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子,所以我也就写出来了。注意要使用PASSWORD函数,然后还要使用FLUSHPRIVILEGES。方法四和方法三一样,只是使用了REPLACE语句mysql>REPLACEINTOmysql.user(Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'))mysql>FLUSHPRIVILEGES方法五使用SETPASSWORD语句,mysql>SETPASSWORDFOR"=PASSWORD('biscuit')拟也必须使用PASSWORD()函数,但是不需要使用FLUSHPRIVILEGES。方法六使用GRANTIDENTIFIEDBY语句mysql>GRANTUSAGEON*.*TO"IDENTIFIEDBY'biscuit'这里PASSWORD()函数是不必要的,也不需要使用FLUSHPRIVILEGES。注意:PASSWORD()[不是]以在Unix口令加密的同样方法施行口令加密。MySQL忘记口令的解决法如果MySQL正在运行,首先杀之:killall-TERMmysqld。启动MySQL:bin/safe_mysqld--skip-grant-tables&就可以不需要密码就进入MySQL了。然后就是>usemysql>updateusersetpassword=password("new_pass")whereuser="root">flushprivileges重新杀MySQL,用正常方法启动MySQL。linux下方法一:#/etc/init.d/mysqlstop#mysqld_safe--user=mysql--skip-grant-tables--skip-networkingmysql-urootmysqlmysql>UPDATEuserSETPassword=PASSWORD('newpassword')whereUSER='root'mysql>FLUSHPRIVILEGESmysql>quit#/etc/init.d/mysqlrestart#mysql-uroot-pEnterpassword:mysql>方法二:直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:#mysql-udebian-sys-maint-pEnterpassword:mysql>UPDATEuserSETPassword=PASSWORD('newpassword')whereUSER='root'mysql>FLUSHPRIVILEGESmysql>quit#mysql-uroot-pEnterpassword:mysql>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9629847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存