标签云
asm 恢复 asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 kfed MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-01110 ORA-01555 ORA-01578 ORA-08103 ORA-600 2662 ORA-600 2663 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 ORACLE恢复 Oracle 恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (100)
- 数据库 (1,589)
- DB2 (22)
- MySQL (70)
- Oracle (1,459)
- Data Guard (49)
- EXADATA (7)
- GoldenGate (21)
- ORA-xxxxx (158)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (13)
- ORACLE 21C (3)
- Oracle ASM (65)
- Oracle Bug (7)
- Oracle RAC (47)
- Oracle 安全 (6)
- Oracle 开发 (27)
- Oracle 监听 (27)
- Oracle备份恢复 (526)
- Oracle安装升级 (83)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (75)
- PostgreSQL (13)
- PostgreSQL恢复 (3)
- SQL Server (27)
- SQL Server恢复 (8)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (36)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (19)
-
最近发表
- ORA-00600: internal error code, arguments: [16703], [1403], [4] 原因
- 最近遇到几起ORA-600 16703故障(tab$被清空),请引起重视
- ORA-600 2662快速恢复之Patch scn工具
- TNS-12518: TNS:listener could not hand off client connection
- ora.storage无法启动报ORA-12514故障处理
- 断电引起文件scn异常数据库恢复
- ORA-16188: LOG_ARCHIVE_CONFIG settings inconsistent with previously started instance
- .[hudsonL@cock.li].mkp勒索加密数据库完美恢复
- 模拟带库实现rman远程备份
- 又一例:ORA-600 kclchkblk_4和2662故障
- Oracle误删除数据文件恢复
- Oracle 19C 备库DML重定向—DML Redirection
- ORA-01595/ORA-600 4194处理
- 从ORA-00283 ORA-16433报错开始恢复
- 近期又遇到ORA-600 16703和ORA-702故障
- RECOVER_YOUR_DATA勒索恢复
- ORA-01033: ORACLE initialization or shutdown in progress 故障处理
- Oracle 19c/21c最新patch信息-202401
- 存储故障,强制拉库报ORA-600 kcbzib_kcrsds_1处理
- ORA-600 kcrf_resilver_log_1故障处理
月归档:十月 2010
通过web更新网站(1)
现在维护的网站比较多,经常因为要修改一个小小的东西,要远程登录,或者ftp登录上去下载下来,然后在修改后,再上传上去,总之比较麻烦,我现在总体设想是通过web实现手工的更新网站,既实现通过web下载、上传、删除、编辑。
今天是实现了对整个站点的文件显示,下载和上传到对应目录,为该程序的第一部分
aspx代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function select_dir() { var select = document.getElementById("selectType"); document.getElementById("h_dir").value = select.options[select.selectedIndex].value; ; } </script> </head> <body> <form id="form1" runat="server"> <input id="h_dir" type="hidden" runat="server"/> <asp:Label ID="lbl_dir" runat="server" ></asp:Label> <asp:Button ID="btn_select" runat="server" Text="查看文件" onclick="btn_select_Click" /> <div style="width:400px; height:500px; overflow:auto"> <asp:Label ID="show_file" runat="server" ></asp:Label> </div> <asp:FileUpload ID="file_up" runat="server" /> <asp:Button ID="btn_up" runat="server" Text="上传文件" onclick="btn_up_Click" /> </form> </body> </html>
cs代码
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Data; using System.Threading; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string web_file=Server.MapPath("."); DirectoryInfo thisOne = new DirectoryInfo(web_file); lbl_dir.Text="<select id='selectType' onclick='select_dir();' ><option value='" + System.Web.HttpContext.Current.Server.UrlEncode(web_file) + "'>网站目录</option>" + ListSelectShow(thisOne, 0, "") + "</select>"; h_dir.Value = System.Web.HttpContext.Current.Server.UrlEncode(web_file); if (Request.QueryString["F"]!=null) { string d_file = System.Web.HttpContext.Current.Server.UrlDecode(Request.QueryString["F"].ToString()); //求文件名 string[] fs = d_file.Split('\\'); string ext = fs[fs.Length - 1]; //下载文件 Page.Response.Clear(); bool success = ResponseFile(Page.Request, Page.Response, ext, d_file, 1024000); if (!success) Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('下载文件失败,请重试');", true); Page.Response.End(); } } } public string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//递归目录和 文件,树形结构显示 { if (nLevel == 0) { FileInfo[] fileInfo = theDir.GetFiles(); foreach (FileInfo fInfo in fileInfo) { Rn += "├"; Rn += "<a href='Default.aspx?F="; Rn = Rn + System.Web.HttpContext.Current.Server.UrlEncode(fInfo.FullName); Rn += "'>"; Rn += fInfo.Name.ToString() + "</a> <br />"; } } DirectoryInfo[] subDirectories = theDir.GetDirectories();//获得目录 foreach (DirectoryInfo dirinfo in subDirectories) { if (nLevel == 0) { Rn += "├"; } else { string _s = ""; for (int i = 1; i <= nLevel; i++) { _s += "│ "; } Rn += _s + "├"; } Rn += "<b>" + dirinfo.Name.ToString() + "</b><br />"; FileInfo[] fileInfo = dirinfo.GetFiles(); //目录下的文件 foreach (FileInfo fInfo in fileInfo) { if (nLevel == 0) { Rn += "│ ├"; } else { string _f = ""; for (int i = 1; i <= nLevel; i++) { _f += "│ "; } Rn += _f + "│ ├"; } Rn += "<a href='Default.aspx?F="; Rn = Rn + System.Web.HttpContext.Current.Server.UrlEncode(fInfo.FullName); Rn += "'>"; Rn += fInfo.Name.ToString() + "</a><br />"; } Rn = ListTreeShow(dirinfo, nLevel + 1, Rn); } return Rn; } public static string ListSelectShow(DirectoryInfo theDir, int nLevel, string Rn)//递归目录下拉框显示 { DirectoryInfo[] subDirectories = theDir.GetDirectories();//获得目录 foreach (DirectoryInfo dirinfo in subDirectories) { Rn += "<option value=\"" +System.Web.HttpContext.Current.Server.UrlEncode( dirinfo.FullName) + "\" >"; if (nLevel == 0) { Rn += "├"; } else { string _s = ""; for (int i = 1; i <= nLevel; i++) { _s += "│ "; } Rn += _s + "├"; } Rn += "" + dirinfo.Name.ToString() + "</option>"; Rn = ListSelectShow(dirinfo, nLevel + 1, Rn); } return Rn; } protected void btn_select_Click(object sender, EventArgs e) { string first_dir = System.Web.HttpContext.Current.Server.UrlDecode(h_dir.Value); DirectoryInfo thisOne = new DirectoryInfo(first_dir); show_file.Text = ListTreeShow(thisOne, 0, ""); } public bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)//下载文件 { try { FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); BinaryReader br = new BinaryReader(myFile); try { _Response.AddHeader("Accept-Ranges", "bytes"); _Response.Buffer = false; long fileLength = myFile.Length; long startBytes = 0; double pack = 10240; //10K bytes //int sleep = 200; //每秒5次 即5*10K bytes每秒 int sleep = (int)Math.Floor(1000 * pack / _speed) + 1; if (_Request.Headers["Range"] != null) { _Response.StatusCode = 206; string[] range = _Request.Headers["Range"].Split(new char[] { '=', '-' }); startBytes = Convert.ToInt64(range[1]); } _Response.AddHeader("Content-Length", (fileLength - startBytes).ToString()); if (startBytes != 0) { //Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength-1, fileLength)); } _Response.AddHeader("Connection", "Keep-Alive"); _Response.ContentType = "application/octet-stream"; _Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8)); br.BaseStream.Seek(startBytes, SeekOrigin.Begin); int maxCount = (int)Math.Floor((fileLength - startBytes) / pack) + 1; for (int i = 0; i < maxCount; i++) { if (_Response.IsClientConnected) { _Response.BinaryWrite(br.ReadBytes(int.Parse(pack.ToString()))); Thread.Sleep(sleep); } else { i = maxCount; } } } catch { return false; } finally { br.Close(); myFile.Close(); } } catch { return false; } return true; } protected void btn_up_Click(object sender, EventArgs e) { if (file_up.HasFile) { try { string path = System.Web.HttpContext.Current.Server.UrlDecode(h_dir.Value); string file = file_up.FileName; file_up.SaveAs(path + "/" + file); DirectoryInfo thisOne = new DirectoryInfo(path); show_file.Text = ListTreeShow(thisOne, 0, ""); } catch { Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('上传文件失败,请重试');", true); } } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('请选择文件');", true); } } }
发表在 Asp.Net
评论关闭
Solaris10 配置网络
也许是自己对Unix的好奇,也许是Unix+C的利益驱使,我装起了几个Unix系统,想看看到底哪个比较好,比较适合我。在安装的Freebsd、OpenSolaris、Solaris10这三个可以装在32位的cpu上的系统。大概的随便的打开,使用了下shell,感觉和linux没有太大的区别(也许我还没有理解其中的精髓),从做服务器的角度来说,应该是Solaris10最合适,从个人使用的角度来说,OpenSolaris比较顺手。最后装好在VM中的是Solaris10,然后就多玩了下,配置了网络,使用ssh远程访问。现在把Solaris的网络配置给记录下来,以便以后参考
主机名关联文件(hostname.网卡,hosts)
# cat /etc/hostname.e1000g0
xifenfei
# cat /etc/hosts
127.0.0.1 localhost
192.168.1.10 xifenfei loghost
ip地址关联文件
# cat /etc/hosts
127.0.0.1 localhost
192.168.1.10 xifenfei loghost
# cat /etc/netmasks
192.168.1.0 255.255.255.0
# cat /etc/defaultrouter
192.168.1.1
域名相关文件
#cat/etc/resolv.conf
nameserver 202.96.134.133
nameserver 202.96.128.68
#cat /etc/nsswitch.conf
hosts: files dns
常用命令
ifconfig -a —>得出网卡的名字,一般第一块100M网卡名为pcn0
ifconfig pcn0 down —>先把网卡pcn0的服务暂时停止
ifconfig pcn0 up —>启动网卡pcn0的服务
ifconfig pcn0 192.168.1.10 netmask 255.255.255.0 up —>临时修改ip启动网卡(永久性修改后,使用该命令可以使修改ip生效)
发表在 Unix
评论关闭
DB Console管理
今天准备启动linux下的oracle OEM,突然想起来,在win下,有个console相关的进程,想想linux下应该也有类此的东西,然后网上一查,果真有个叫做dbconsole的东西,不过要先执行lsnrctl start
1、执行emctl命令
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
我想应该是在spfile中没有设置这个参数,然后似乎用export ORACLE_UNQNAME=orcl经行环境变量设置
2、再执行emctl命令,尽然提示
EM Configuration issue. /u01/oracle/xff_orcl not found
然后网上查了下执行emca -config dbcontrol db
然后跟换提示进行相关参数配置
[oracle@xff ~]$ emca -config dbcontrol db
EMCA 开始于 2010-10-3 15:11:12
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: orcl
监听程序端口号: 1521
监听程序 ORACLE_HOME [ /u01/oracle ]: /u01/oracle
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
最后提示配置成功
3、通过浏览器
https://xff:1158/em/可以进行正常访问
4、相关命令:
emctl status dbconsole 查看dbconsole状态
emca -repos create创建一个EM资料库
emca -repos recreate重建一个EM资料库
emca -repos drop删除一个EM资料库
emca -config dbcontrol db配置数据库的 Database Control
emca -deconfig dbcontrol db删除数据库的 Database Control配置
emca -reconfig ports 重新配置db control和agent的端口
emctl start dbconsole启动EM console服务,使用前需要先设置ORACLE_SID环境变量
emctl stop dbconsole停止EM console服务,使用前需要先设置ORACLE_SID环境变量
注:通过查看$ORACLE_HOME/install/portlist.ini 文件可以知道当前dbcontrol正在使用的端口,默认dbcontrol http端口1158,agent端口3938。如果要重新配置端口,可以使用如下命令:
emca -reconfig ports -dbcontrol_http_port 1159
emca -reconfig ports -agent_port 3939
发表在 Oracle
评论关闭