admin 的所有文章

ORACLE删除当前用户下所有的表的方法

1、如果有删除用户的权限,则可以:

drop user user_name cascade;

加了cascade就可以把用户连带的数据全部删掉。

删除后再创建该用户。
–创建管理员用户
create user 用户名 identified by 密码 default tablespace space_data(表空间名称) temporary tablespace space_temp(临时表空间名称);
–授权
grant connect,dba to 用户名;
–修改限额
ALTER USER “用户名” QUOTA UNLIMITED ON SPACE_DATA(表空间名称);

–查看所有用户对象
select uo.object_name,uo.object_type from user_objects uo where uo.object_type<>’LOB’ order by uo.object_type desc

 

2、如果没有删除用户的权限,则可以执行:

select ‘drop table ‘||table_name||’;’ 
from cat 
where table_type=’TABLE’

将会输出一批删除表的sql语句,这些SQL语句执行一下就可以了。(需要有drop table的权限)

解决Tomcat对POST请求文件上传大小的限制

  在后台系统中对图片进行上传,图片路径已存入数据库,但在查询时图片并未展示出来,检查发现服务器并没有接收到此图片,后来发现图片大小为4.6MB,超过tomcat对http的post请求默认接收大小2M的限制。报错!

解决的方案:
  修改tomcat安装目录下的配置文件tomcat../conf/server.xml,找到里面的<Connector>标签,在该标签中添 加”maxPostSize”属性,将该属性值设置成你想要的最大值,单位是字节,或者把这个值设置为 -1(maxPostSize=”-1″),tomcat将不再检查POST的大小。即可解决上述问题。

  注意:7.0 以上版本 maxPostSize 设置为 -1,不是0

 

 

参见博客地址:https://blog.csdn.net/whatever8975757/article/details/60576188

 

Windows下如何查看某个端口被谁占用

1、 开始—->运行—->cmd,或者是window+R组合键,调出命令窗口;

2、输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是1224,首先找到它;

3、查看被占用端口对应的PID,输入命令:netstat -aon|findstr “8081”,回车,记下最后一位数字,即PID,这里是9088;

4、 继续输入tasklist|findstr “9088”,回车,查看是哪个进程或者程序占用了8081端口,结果是:node.exe 或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看9088对应的进程是谁,如果看不到PID这一列

javamail彻底解决中文乱码的方法

用javamail以来,一直被中文乱码困扰,虽然90%的邮件都正常,但是剩下10%的乱码确实让人心里疙疙瘩瘩。

通过代码subject = MimeUtility.decodeText(mimeMessage.getSubject());subject = MimeUtility.decodeText(subject);
获取的subject大部分都是正确的,但偶尔出现乱码,网上给出解决办法,
subject = new String(subject.getBytes(“ISO8859_1”), “GBK”),的确解决了乱码问题,但是以前正确的就变成了乱码。能不能只把乱码的进行转换,要想转换的话就必须知道是不是乱码,只有是乱码的情况下我们需要尝试用GBK转换。
那么如何知道是否有乱码呢?要是能知道subject的字符集就好了,但是这条路是行不通的,至少并不是完美的解决办法。
那么如何呢?
我以为只要有中文就可能存在乱码,那么如果subject中没有中文,就可以怀疑他是乱码,我们就尝试进行GBK转换
String regEx = “[\u4e00-\u9fa5]”;
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(subject);
if(!m.find()){
    subject = new String(subject.getBytes(“ISO8859_1”), “GBK”);
    subject = MimeUtility.decodeText(subject);
}
可能影响效率,但是确实管用。

Tomcat通过setenv.bat指定jdk和jre(相对路径)

1.在Tomcat的bin目录下,创建一个名为setenv.bat的文件。

2.编辑setenv.bat,

@echo off
rem set tmp variables SERVICE_ROOT

set BIN_DIR=%cd%
SET TITLE=%BIN_DIR%--"SERVICE NAME"
set curr=%cd%
cd ../..
set SERVICE_ROOT=%cd%
cd %BIN_DIR%

rem set JRE AND JDK
if exist "%SERVICE_ROOT%JDK8.0jrebinjava.exe" set "JRE_HOME=%SERVICE_ROOT%JDK8.0jre"
if exist "%SERVICE_ROOT%JDK8.0jrebinjava.exe" set "JAVA_HOME=%SERVICE_ROOT%JDK8.0jre"

set Path=%JRE_HOME%bin;%JAVA_HOME%bin;%Path%

ECHO %SERVICE_ROOT%
ECHO %JAVA_HOME%
ECHO %JRE_HOME%

 

 

  

JAVA_OPTS设置详解及Tomcat配置参数配置

1、文件位置
打开bin/catalina.bat文件

示例:

JAVA_OPTS=”-Xms256m -Xmx512m -Xss256K -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=test”

1)给出了对内存的配置。

2)以及spring boot 使用spring.profiles.active来分区配置。

项目的部署,开发环境、测试环境、预发布环境、生产环境的环境配置是不同的;比如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置.

Spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。

2、JAVA_OPTS设置
2.1、JAVA_OPTS ,顾名思义,是用来设置JVM相关运行参数的变量。

JVM:JAVA_OPTS=”-server -Xms2048m -Xmx2048m -Xss512k”

-server: 一定要作为第一个参数,在多个CPU时性能佳*。

-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些。

-Xmx:java heap最大值,使用的最大内存。

上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。

-XX:PermSize:设定内存的永久保存区域

-XX:MaxPermSize:设定最大内存的永久保存区域

-XX:MaxNewSize:

-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.

+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。

-Xss:每个线程的Stack大小

-verbose:gc 现实垃圾收集信息

-Xloggc:gc.log 指定垃圾收集日志文件

-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一

-XX:+UseParNewGC :缩短minor收集的时间

-XX:+UseConcMarkSweepGC :缩短major收集的时间

提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。改正方法:-Xms256m -Xmx256m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

2.2、在tomcat中redeploy时出现outofmemory的错误. 可以有以下几个方面的原因:

1) 使用了proxool,因为proxool内部包含了一个老版本的cglib.

2) log4j,最好不用,只用common-logging

3) 老版本的cglib,快点更新到最新版。

4) 更新到最新的hibernate3.2 3

3、实例演示
这里以tomcat环境为例,其它WEB服务器如jboss,weblogic等是同一个道理。

一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。

解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入以下行: JAVA_OPTS=”-server -XX:PermSize=64M -XX:MaxPermSize=128m

建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。

二、java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。

解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo “Using CATALINA_BASE: $CATALINA_BASE””上面加入

下行: JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:MaxNewSize=256m”

三、下面给出1G内存环境下Java jvm 的参数设置 ,作为参考

JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true “

 

四、不同启动方式配置方式

1.注册服务的启动方式(参照博客:https://www.cnblogs.com/JoePotter/p/11773317.html)

  注意:在注册服务前修改配置文件$TOMCAT_HOMEbinservice.bat

    

if "%SERVICE_STARTUP_MODE%" == "" set SERVICE_STARTUP_MODE=manual
if "%JvmMs%" == "" set JvmMs=2048
if "%JvmMx%" == "" set JvmMx=2048

  注册服务即可配置成功。

2.以startup.bat方式启动

 修改配置文件$TOMCAT_HOMEbincatalina.bat

 在第一行位置添加:set JAVA_OPTS=%JAVA_OPTS% -server -Xms2048m -Xmx2048m

操作系统性能观测工具

1.工具类型 

  性能观测工具可以按照系统级别和进程级别来分类,多数的工具要么基于计数器要么基于跟踪。我们把这些性能放在如下图中,包括一些常见工具作为示例

  有一些工具不止适合一个象限,例如:top还有一个系统级别的视图,Dtrace也有进程级别的能力。还有一些性能工具是基于剖析(profiling)的。对系统和进程做一系列快照,以此来进行观测。

 1.1计数器

   内核维护了各种统计数据,称为计数器,用于对事件计数。通常计数器实现为无符号的整型数,发生事件时递增。计数器的使用可以认为是“零开销”的,因为它们默认是开启的,而且始终由内核维护。

唯一的使用开销是从用户空间读取它们的时候(可以忽略不计)。

系统级别

下面这些工具利用内核的计数器在系统软硬件的环境中检查系统级别的活动。

 vmstat:虚拟内存和物理内存的统计,系统级别。

mpstat:每个CPU的使用情况。

iostat:每个I/O的使用情况,由块设备接口报告。

netstat:网络接口的统计,TCP/IP栈的统计,以及每个连接的一些统计信息。

sar:各种各样的统计,能归档历史数据。

这些工具通常是系统全体用户可见的(非root用户)。统计出的数据也常常被监控软件用来绘图。

进程级别

下面这些工具以进程为导向的,使用的是内核为每个进程维护的计数器。

ps:进程状态,显示进程的各种统计信息,包括内存和cpu的使用。

top:按一个统计数据(如CPU使用)排序,显示排名高的进程,基于Solaris的系统对应的工具是prstat(1M)

pmap:将进程的内存段和使用统计一起列出。

一般来说,上述的这些工具是从/proc文件系统里读取统计的信息的。

1.2 跟踪

       跟踪收集每一个事件的数据以供分析。跟踪框架一般默认是不启用的,因为跟踪捕获数据会有CPU的开销,另外还需要不小的存储空间来存放数据。

这些开销会拖慢所跟踪的对象,在解释测量时间的时候需要加以考虑。

     日志,包括系统日志,可以认为是一种默认开启的低频率的跟踪。日志包括每一个事件的数据,虽然通常只针对偶发事件,如错误和警告。

系统级别

利用内核功的跟踪设施,下面这些跟踪工具在系统软硬件的环境中检查系统级别的活动。

   tcpdump:网络包跟踪(用libpcap库)

   snoop:为基于Solaris的系统打造的网络包跟踪工具。

   blktrace:块I/O跟踪(Linux)

   iosnoop:块I/O跟踪(基于Dtrace)

   execsnoop:跟踪新进程(基于Dtrace)

   dtruss:系统级别的系统调用缓冲跟踪(基于Dtrace)

   Dtrace:跟踪内核的内部活动和所有资源的使用情况(不仅仅是网络和块I/O),支持静态和动态的跟踪。

   SystemTap:跟踪内核的内部活动和所有资源的使用情况,支持静态和动态的跟踪。

   perf:Linux性能事件,跟踪静态和动态的探针。

Dtrace和SystemTap都是可编程环境,在它们之上可以构建系统级别的跟踪工具

进程级别

 以进程为导向的,基于的是操作系统提供的框架。

  strace:基于Linux系统的系统调用跟踪。

  truss:基于Solaris系统的系统调用跟踪。

  gdb:源代码级别的调试器,广泛应用于Linux系统。

  mdb:Solaris系统的一个具有可扩展性的调试器。

调试器能够检查每一个事件的数据,不过做这件事情时需要停止目标程序的执行,然后再启动。

诸如:Dtrace、SystemTap和perf这样的工具,虽然更适合归纳到系统级别一类中,但是他们都支持对单个进程做检查。

1.3 剖析

 

Windows 7 设置允许多用户同时远程桌面连接

有时候我们服务器安装的是Win7系统,远程登录桌面时,即使登录的是不同的管理账号,还是会提示把远程登录的人给踢下来。即系统只允许存在一个远程会话窗,不管是不是相同的用户。

下面讲解如何设置Win7让多个账号的各自会话同时存在,且相互之间不冲突。

1、创建需要远程的账号。点击桌面计算机,右键—>管理—>本地用户和组—>用户—>新建用户

2、将新建用户添加到远程桌面组Remote Desktop Users

3、开启计算机远程。点击桌面计算机,右键—>属性—>远程设置—>勾上允许任意版本远程桌面的计算机连接

4、防火墙注意开放远程桌面端口

5、点击开始菜单—>运行—>输入“gpedit.msc”进入本地组策略编辑器

6、在本地组策略编辑器里面,依次展开计算机配置—>管理模板—>Windows组件—>远程桌面服务—>远程桌面会话主机—>连接—>限制连接的数量

7、打开限制连接数,这里未配置时,默认的最大连接数是1,点击已启用—>允许的RD最大连接数为该为20—>确定

8、下载一个UniversalTermsrvPatch,这是第三方工具,右键使用管理员身份运行UniversalTermsrvPatch-x64文件,点击破解即可

检验maven的配置是否生效或正确。

1.在控制台输入  mvn help:system

2.当控制台出现build success时,说明配置生效或正确。

这样本地仓库就配置成功了

 

相关问题:

1.执行上面的命令后提示:Unrecognized Windows Sockets error: 10106: create 的解决

    

按照步骤来吧
①以管理员身份打开命令提示符(win7附件中右键命令操作符选择管理员模式运行、win8或10可先菜单中搜索命令操作符然后右键…)
②运行 netsh winsock reset
③重启电脑