Not sure what to do

I've been with my husband for 17 years. We've naturally had ups and downs, but things are mostly good. He isn't very affectionate which drives me crazy, but overall it's all good. Last night he had a few drinks, he only drinks a couple times a year. In my opinion he had too much. He was clearly drunk. He was being loud and I was annoyed. It was late and I wanted to go to sleep. I had already kenneled our dogs for the night and he asks me to let one of them come up in the bed. I said no because they were already kenneled and I was in bed. Out of nowhere he became furious. He was so mad thatt I wouldn't go get the dog. He just kept going on and on, so I finally just left the room to get away for a little bit. I came back after a little while and laid down. He immediately starts telling me how ugly and fat I am. How I constantly throw myself at him and it's so disgusting. He kep saying how he doesn't normally associate with fat girls, but I got fat so he doesn't have a choice, and why can't I figure out that he has zero attraction to me, and that he lowered his standards big time to be with me. I was so stunned I didn't say a word. I cried into my pillow, more hurt than I have ever felt in my life. He has never spoken to me like that before. When he woke up today, I was just going about cleaning and being quiet. He asked what was wrong and I said "you know" he said he didn't know what I was talking about. I told him and he said he has no memory of saying that stuff. He said I can't be mad because he doesn't remember it! Well, I am mad and hurt more than anything. He didn't even try to apologize. About an hour later he walks up and says "give me a kiss" The last thing I feel like doing is kissing him and now he's mad that I'm holding a grudge. I just don't know what to do. I feel like he is trying to turn the whole thing around on me and make me feel bad for what he did. If this was a new relationship, I'd be out the door so fast, but it's been 17 years. Do I find a way to forgive him?